ホームページ  >  記事  >  データベース  >  MySQL アーキテクチャを理解する

MySQL アーキテクチャを理解する

coldplay.xixi
coldplay.xixi転載
2021-01-05 09:20:432084ブラウズ

mysql ビデオ チュートリアルMySQL システム アーキテクチャを紹介するコラム

MySQL アーキテクチャを理解する

推奨 (無料): mysql ビデオ チュートリアル

MySQL アーキテクチャ

MySQL アーキテクチャは主に 2 つの部分に分かれています: クライアントおよびサーバー

MySQL アーキテクチャを理解する

クライアント

クライアント コネクタは主に、さまざまなプログラミング言語を対象とした一部のクライアントの接続を担当します。ドライバーが提供する接続サービス。

サーバー

サービス層には、システム管理および制御ツール、接続プール、SQL インターフェイス、パーサー、クエリ オプティマイザー、キャッシュが含まれます。

  • 接続プール
    クライアントとサービス層データ処理の間の接続を管理し、操作を実行するためのユーザーの権限を確認します。

  • システム管理および制御ツール
    バックアップ セキュリティ、セキュリティ管理、クラスター管理サービスおよびツールなどを担当します。

  • SQL インターフェイス
    クライアント SQL コマンドを受け取り、ユーザーが必要とする結果を返します。例: dml、ddl、ストアド プロシージャ、ビュー、トリガー、その他のコマンド。

  • パーサー
    単語(キーワード)解析、構文解析、SQL受信、解析、解析木生成、構文検証チェック。

  • クエリ オプティマイザー: 解析ツリーを生成し、パーサー文法を渡した後、オプティマイザーは適切なインデックスを選択し、実行プランを生成して、実行エンジンと対話します。

  • キャッシュ
    キャッシュ メカニズムは一連のキャッシュで構成されます。
    例: テーブル キャッシュ、レコード キャッシュ (SQL クエリの結果がキャッシュされ、次回同じ SQL クエリがキャッシュから返されます)、
    権限キャッシュ、エンジン キャッシュなど。キャッシュがヒットした場合、データはキャッシュから直接フェッチされます。

  • ストレージ エンジン レイヤー
    InnoDB、MyISAM などの MySQL データの読み取りとアクセスを担当します。プラグイン可能なさまざまなストレージ エンジンを置き換えることができます。

  • システム ファイル層
    ログ、データ ファイルなど。

#SQL 実行プロセス

MySQL アーキテクチャを理解する

    最初にクライアントが接続します。
  • 次に、サーバー層の接続マネージャーでユーザー権限とその他の操作を確認します;
  • 次に、8.0 以外のバージョンの場合は、キャッシュ プール内の現在の SQL キャッシュをチェックし、そうでない場合は直接返します。何かあります;
  • キャッシュにない場合は、パーサー構文とセマンティクスによって解析ツリーが生成されます;
  • オプティマイザーは解析して実行計画を生成し、適切なインデックスを選択します;
  • ストレージ エンジンは API インターフェイスを呼び出してデータをクエリし、クエリされたデータでキャッシュ キャッシュを更新します;
  • 最終的にデータをクライアントに返します;
#ストレージ エンジン層

ストレージ エンジンは、特にファイルを処理する MySQL のサブシステムであり、mysql およびディスク ファイルを処理するためのファイル システムに基づいて抽象化されたシステムです。

一般的に使用されるストレージエンジン、MyISAM、トランザクションをサポートする InnoDB;


MySQL のバージョン 5.6 より前、デフォルトのストレージ エンジンは MyISAM でした;
  • バージョン 5.6 以降、デフォルトのストレージ エンジンは InnoDB でした;
  • 関数の比較

MySQL アーキテクチャを理解する

    InnoDB は ACID の 4 つのトランザクション特性をサポートしますが、MyISAM はそれをサポートしません。
  • #InnoDB は 4 つのトランザクション分離レベルをサポートします。デフォルトは、Repeatable Read、Repeatable Read、MyISAM はサポートしません。

  • InnoDB は、クラッシュ セーフ リカバリをサポートしますが、MyISAM はサポートしません。それ;

  • InnoDB は外部キーをサポートしますが、MyISAM はサポートしません;

  • InnoDB は行レベルのロック粒度をサポートしますが、MyISAM はサポートしません、テーブル レベルのロック粒度のみをサポートします。

  • InnoDB は MVCC をサポートしますが、MyISAM はサポートされません。

以上がMySQL アーキテクチャを理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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