ファイルシステムとは何か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 をインストールする方法
一般的に使用される Oracle10g パーティションは、範囲 (範囲パーティション)、リスト (リ...
1. KVM仮想マシンの移行方法と注意すべき点KVM 仮想マシンを移行する方法は 2 つあります。...
外国のウェブサイトを開くと文字化けした文字が表示されることが多く、また、英語以外の外国のウェブサイト...
序文インデックスは、データベース内の 1 つ以上の列の値を並べ替え、データベースが効率的にデータを取...
序文MySQL では、複数テーブル結合クエリは非常に一般的な要件です。複数テーブルクエリを使用する場...
目次序文1. NJSモジュールをインストールする方法1: NJSモジュールを動的にロードする方法2:...
序文世界最高の Web サーバーの 1 つである Nginx の利点は明らかです。 Nginx がリ...
JavaScriptコントロールを使用したくない場合は、次の方法を試してください。 Safariブラ...
1. HTML タグを使用してテーブルを作成します。コードをコピーコードは次のとおりです。 <...
序文効率的なSQL文の書き方は、Explain実行計画の分析と切り離せません。実行計画とは何か、効率...
1. はじめに最近、 Webpackの原理を勉強しています。これまでは Webpack の設定方法し...
テキスト入力でプレースホルダーを使用していますが、問題なく動作します。しかし、選択ボックスにはプレー...
var() の紹介と使用法詳細 (MDN) IEは無効ですが、他の主流のブラウザは有効ですvar()...
ドロップダウンボックス、テキストフィールド、ファイルフィールド 上半分はデモンストレーション効果、下...
リアルタイム レプリケーションは、企業データをバックアップする最も重要な方法です。主に、ユーザーが送...