ホームページ  >  記事  >  データベース  >  MySqlの全体構造を詳しく解説

MySqlの全体構造を詳しく解説

coldplay.xixi
coldplay.xixi転載
2021-04-08 09:59:162244ブラウズ

MySqlの全体構造を詳しく解説

#MySql の全体構造

MySQL は、接続プール、SQL インターフェイス、パーサー、オプティマイザー、キャッシュ、ストレージ エンジンなどは、MySQL サーバー層、ストレージ エンジン層、ファイル システム層の 3 つの層に分けることができます。 MySQL サーバー層には、接続層と SQL 層が含まれます。以下は、公式ドキュメントに記載されている MySQL のインフラストラクチャ図です。

MySqlの全体構造を詳しく解説

#上の図では、接続プールは接続層であり、管理サービスとユーティリティ...キャッシュとバッファーは SQL レイヤー、プラガブル ストレージ エンジンはストレージ エンジン レイヤー、ファイル システム、ファイルとログはファイル システム レイヤーです。

コネクタは上記のどの層にも属しません。コネクタは、主に異なる言語と SQL の間の対話を指す、さまざまなクライアントおよびアプリケーション サービスとして理解できます。

#関連する無料学習の推奨事項:

mysql ビデオ チュートリアル

1. 接続レイヤー

アプリケーションはインターフェイス (ODBC、JDBC など) を介して MySQL に接続します。最初の接続処理は接続層です。接続層には、通信プロトコル、スレッド処理、ユーザー名とパスワードの認証の 3 つの部分が含まれます。

通信プロトコルは、クライアントのバージョンが MySQL サーバーと互換性があるかどうかを検出する役割を果たします。
    -スレッド処理とは、各接続要求に対応するスレッドが割り当てられることを意味します。これは、1 つのスレッドに対応する 1 つの SQL、1 つの論理 CPU に対応する 1 つのスレッド、および複数の論理 CPU 間の切り替えに相当します。
  • - パスワード認証は、ユーザーが作成したアカウント、パスワード、およびホスト認証が MySQL サーバーに接続できるかどうかを確認するために使用されます。

  • 接続プールは接続層に属します。毎回接続を確立するには時間がかかるため、接続プールの役割は、ユーザーの接続、ユーザー名、パスワード、権限の検証、スレッドの処理など、キャッシュする必要があるものをキャッシュすることです。確立された接続を直接使用し、サーバーのパフォーマンスを向上させます。

2. SQL レイヤー

SQL レイヤーは MySQL の中核であり、MySQL のコア サービスはこのレイヤーに実装されます。主にパーミッション判定、クエリキャッシュ、パーサー、前処理、クエリオプティマイザー、キャッシュ、実行プランが含まれます。

権限判定では、ユーザーが特定のライブラリ、特定のテーブル、またはテーブル内の特定のデータ行にアクセスする権限を持っているかどうかを確認できます。
  • クエリ キャッシュはクエリ キャッシュを通じて動作します。データがクエリ キャッシュにある場合、結果はクエリの解析、最適化、実行を必要とせずにクライアントに直接返されます。
  • クエリ パーサーは SQL ステートメントを解析して、構文が正しいかどうかを判断します。
  • プリプロセッサは、パーサーが解析できないセマンティクスを処理します。
  • クエリ オプティマイザーは、それに応じて SQL を書き換えて最適化し、最適な実行プランを生成します。その後、プログラムの API インターフェイスを呼び出し、ストレージ エンジン層を介してデータにアクセスできます。
  • 次の表で詳しく説明するように、管理サービスとユーティリティ、SQL インターフェイス、パーサー、オプティマイザー、およびキャッシュとバッファは SQL レイヤーに属します。

#名前説明##管理サービスとユーティリティ## システム#MySQL の管理および制御ツール (バックアップとリカバリ、MySQL レプリケーション、クラスタリングなどを含む)。 SQL インターフェイス (SQL インターフェイス) は、ユーザーの SQL コマンドを受け取り、ユーザーがクエリする必要がある結果を返すために使用されます。たとえば、SELECT FROM は SQL インターフェイスを呼び出します。 パーサー (クエリ パーサー) SQL コマンドがパーサーに渡されると、MySQL オプティマイザーが認識できるようにパーサーによって検証および解析されます。データ構造 または、SQL ステートメントのエラーを返します。 オプティマイザー (クエリ オプティマイザー) SQL ステートメントはクエリ オプティマイザーを使用してクエリを実行する前にクエリを最適化し、同時にユーザーに次の権限があるかどうかを確認します。クエリとキャッシュ 最新のデータは利用可能ですか?クエリには「select-project-join」戦略が使用されます。たとえば、 SELECT id, name FROM Student WHERE 性別 = "女性"; このステートメントでは、SELECT クエリは、テーブル全体をクエリしてから性別でフィルターするのではなく、最初に WHERE ステートメントに基づいて選択します。 SELECT クエリは、すべての属性を抽出してからフィルタリングするのではなく、最初に ID と名前に基づいて属性射影を実行し、これら 2 つのクエリ条件を接続して最終的なクエリ結果を生成します。 クエリ キャッシュにヒットしたクエリ結果がある場合、クエリ ステートメントはクエリ キャッシュからデータを直接フェッチできます。このキャッシュ メカニズムは、テーブル キャッシュ、レコード キャッシュ、キー キャッシュ、権限キャッシュなどの一連の小さなキャッシュで構成されます。

3. ストレージ エンジン層

プラガブル ストレージ エンジンはストレージ エンジン層に属します。ストレージ エンジン層は、MySQL データベースを他のデータベースと区別する核心部分であり、MySQL の最も特徴的な場所でもあります。主に、MySQL でのデータの保存と取得を担当します。

リレーショナル データベースではデータがテーブルの形式で格納されるため、ストレージ エンジンはテーブル タイプ (つまり、このテーブルのストレージと操作のタイプ) と呼ばれることもあります。

4. ファイル システム レイヤー

ファイル システム レイヤーは主にオペレーティング システムのファイル システムにデータベース データを保存し、ストレージ エンジンとの対話を完了します。

ファイル システム レイヤーは、主にオペレーティング システムのファイル システムにデータベース データを保存し、ストレージ エンジンとの対話を完了します。

#その他の関連する無料学習の推奨事項:

mysql チュートリアル(ビデオ)

キャッシュとバッファ (クエリ キャッシュ)

以上がMySqlの全体構造を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。