ファイルシステムとは何かInnoDB や MyIASM などのストレージ エンジンはテーブルをディスク (永続的) に保存することが知られています。データを読み取りたい場合、これらのストレージ エンジンはファイル システムからデータを読み取り、それを返します。データを書き込む場合、これらのストレージ エンジンはデータをファイル システムに書き戻します。 もちろん、MySQL は実際のデータを保存するだけでなく、ファイル システムに属する一連の他のログも保存します。 ストレージエンジンに保存されているファイルのアドレスクライアントを使用してサーバーとの接続を確立した後、このシステム変数の値を表示できます。 'datadir' のような変数を表示します。 もちろん、このディレクトリは設定ファイルを通じて変更でき、自分で指定することもできます。 ディスクファイルには何が含まれていますか?MySQL は動作中にどのようなデータを生成するのでしょうか? もちろん、作成したデータベース、テーブル、ビュー、トリガーなどのユーザー データも含まれます。 これらのユーザー データに加えて、MySQL はプログラムの動作を向上させるために、その他の追加データも作成します。 データベースの日付ディレクトリのテーブル情報 CREATE DATABASE ステートメントを使用してデータベースを作成すると、ファイル システムでは実際に何が起こるのでしょうか。実は非常に簡単です。各データベースは、データ ディレクトリの下のサブディレクトリ、つまりフォルダーに対応しています。新しいデータベースを作成すると、MySQL は次の 2 つのことを行います。
現在 5 つのデータベースがあり、そのうち mysqladv データベースはカスタム データベースであり、他の 4 つのデータベースは MySQL に付属するシステム データベースであることがわかります。データディレクトリの内容を見てみましょう。 もちろん、このデータ ディレクトリの下には多くのファイルとサブディレクトリがありますが、よく見ると、information_schema システム データベースを除いて、他のデータベースにはデータ ディレクトリの下に対応するサブディレクトリがあります。この information_schema は非常に特殊なので、その機能については後で説明します。 InnoDB がデータを保存する方法InnoDB がデータベースを追加すると、ログ ルート ディレクトリにフォルダーが追加されます。 各フォルダーには、対応するすべてのテーブル データが保存されます。各表のデータは、通常、次の 2 つの規則に従って分割されます。 テーブル構造の定義 作成した学習ライブラリの index_condition_pushdown テーブルを例に挙げてみましょう。 テーブル構造はこれらのデータであり、対応するストレージファイル名は次のとおりです。 テーブル構造には、テーブルの名前、テーブル内の列の数、各列のデータ型、制約とインデックス、使用される文字セットと比較ルールなどが含まれます。このすべての情報は、テーブル作成ステートメントに反映されます。この情報を保存するために、InnoDB と MyIASM ストレージ エンジンは両方とも、データ ディレクトリの下の対応するデータベース サブディレクトリにテーブル構造を記述するために使用されるファイルを作成します。ファイル名は、テーブル名.frm です。 表内のデータ テーブルが属するデータベースに対応するサブディレクトリに、独立したテーブルスペースを表すファイルを作成します。ファイル名は、.ibd 拡張子が追加されることを除いて、テーブル名と同じです。したがって、完全なファイル名は、テーブル名.ibd のようになります。 MyISAMがテーブルデータを保存する方法MyISAM のデータとインデックスは別々に保存されます。したがって、ファイル システムでは、データ ファイルとインデックス ファイルを格納するために異なるファイルが使用されます。 (InnoDB と比較すると、ibd ファイルはデータ + インデックスを格納し、MyISAM はそれを再度分割します)。 図に示すように、ストレージ エンジンを変更します。 ファイルディレクトリは上記のように変更されます。これは、InnoDB .ibd ファイルを次の 2 つのファイルに分割することを意味します。 .MYD はテーブルのデータ ファイルを表します。 .MYI はテーブルのインデックス ファイルを表します。 ここでは、InnoDB と MyISAM の重要な違いをまとめます。つまり、InnoDB のインデックスとデータは 1 つのフォルダーに保存されますが、MyISAM ではデータ ファイルとインデックス ファイルが 2 つのファイルに別々に保存されます。 ログファイルサーバーの動作中に、通常のクエリ ログ、エラー ログ、binlog ログ、REDO ログ、UNDO ログなどのさまざまなログが生成されます。ログ ファイルには、MySQL データベースに影響を与えるさまざまな種類のアクティビティが記録されます。 一般的なログ ファイルには、エラー ログ、スロー クエリ ログ、クエリ ログ、バイナリ ログなどがあります。 エラーログ エラー ログ ファイルには、MySQL の起動、操作、シャットダウンのプロセスが記録されます。問題が発生した場合は、まずこのファイルをチェックして問題の場所を特定する必要があります。このファイルには、すべてのエラー メッセージだけでなく、いくつかの警告メッセージや正しいメッセージも記録されます。ユーザーは、次のコマンドを使用してエラー ログ ファイルの場所を表示できます。 'log_error' のような変数を表示します\G; MySQL が正常に起動できない場合、最初に探す必要があるファイルは、エラー情報を記録するエラー ログ ファイルです。 スロークエリログ スロークエリ ログは、問題がある可能性のある SQL ステートメントを見つけるのに役立ち、それによって SQL ステートメントを最適化します。 クエリログ クエリ ログには、リクエストが正しく実行されたかどうかに関係なく、MySQL データベースへのすべてのリクエストに関する情報が記録されます。 デフォルトのファイル名: hostname.log MySQL 5.1以降では、クエリログレコードはmysqlスキーマのgeneral_logテーブルに格納できます。 バイナリログ (binlog)バイナリ ログには、MySQL データベースを変更するすべての操作が記録されます。操作自体によってデータベースが変更されない場合は、その操作がバイナリ ファイルにも書き込まれることがあります。ただし、selectやshowなどの操作は含まれません(これらの操作はデータ自体を変更しないため) binlogのいくつかの機能 回復 一部のデータの回復にはバイナリ ログが必要です。 コピー 原理はリカバリと同様です。バイナリログをコピーして実行することで、リモートの MySQL データベース (一般にスレーブまたはスタンバイと呼ばれます) が MySQL データベース (一般にマスターまたはプライマリと呼ばれます) とリアルタイムで同期されます。 監査(あまり人気がありませんが、db が担当します) ユーザーはバイナリ ログの情報を使用して、データベースへのインジェクション攻撃があるかどうかを監査および判断できます。 要約するこれで、MySQL ファイル ストレージに関するこの記事は終了です。MySQL ファイル ストレージに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: 開発をスピードアップできる VueUse ライブラリ 5 つ (まとめ)
>>: Kali に docker と portainer をインストールする方法
序文多くの管理・オフィスシステムでは、ツリー構造がいたるところで見られます。たとえば、「部門」や「機...
私は最近、最も安い Tencent クラウド サーバーを購入しました。これは主に、Web テクノロジ...
目次序文1. GMT GMTとはGMTの歴史2. UTC UTCとはUTC は次の 2 つの部分で構...
この記事では、Vite を使用して Vue 3 デスクトップ プロジェクトを開発する方法について説明...
私が学習していたときに使用していたバージョンは比較的新しいものであり、インターネット上のチュートリア...
この記事の例では、じゃんけんゲームを実装するためのJSの具体的なコードを参考までに共有しています。具...
序文インデックスの選択はオプティマイザ段階の作業であることはわかっていますが、オプティマイザは万能で...
最近、たまたま vue+springboot のフロントエンドとバックエンドの分離プロジェクトに触れ...
まずMySQLの公式ドキュメントを見てみましょう: 5.7 {データベース | スキーマ} を作成 ...
目次コードの実行に長い時間がかかる場合はどうなりますか? Axiosにはタイムアウト処理機能が搭載さ...
タブバー: 異なるタブをクリックすると異なるコンテンツが表示され、クリックしたタブのスタイルが変更さ...
mysql ストアド プロシージャの概念:特定のタスク (クエリと更新) を実行できる、データベース...
訪問するたびにブラウザにCookieが生成されますが、 Cookieの存在はユーザーにとって良いこと...
この記事では、ショッピングカートの増減と価格計算を実現するためのjsの具体的なコードを紹介します。具...
serializableシリアル化(問題なし)トランザクションは順次実行する必要があります。前のトラ...