ファイルシステムとは何か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 をインストールする方法
最初のステップは、圧縮されたパッケージを対応するディスクに解凍することです。 2 番目の手順は、cm...
新しい用途new の機能は、コンストラクターを通じてインスタンス オブジェクトを作成することです。イ...
手順は以下のとおりです1. dockerグループを作成する: sudo groupadd docke...
1. HTML_falshアニメーションでのマルチメディアの応用(WebページへのFlashアニメー...
Linux 構成/ビルド システムがどのように機能するかを深く理解します。 Linux カーネル構成...
目次序文1. MySQL メインストレージエンジン: 2. さまざまなストレージエンジンがテーブルを...
1. ヘルプコマンド1. 現在のDockerバージョンを表示する docker バージョン2. イメ...
Union は、重複行を除外し、デフォルトのソートを実行する、データに対する結合操作です。Union...
これにより、png ファイルのアップロードも不可能になりました (後で情報を調べたところ、レジストリ...
1.Mysqlスクリプトのワンクリックインストール [root@uat01 ~]# cat Inst...
Linux のデフォルトの ssh リモート ポートは 22 です。デフォルトのポートは、悪意のある...
公式、電子商取引、ソーシャル ネットワーキング、個人のいずれの Web サイトでも、訪問者に貴重な時...
1つ目:通常動作 選択 SUM(ddd) AS count_days、 場合 aa.days >...
需要背景チームには統合テストが必要であり、そのためには、mysql や rabbitmq などのミド...
原因は、プロセスが特定の時点でシステム制限を超える数のファイルと通信リンクを開くことです。 システム...