SqlServerのアーキテクチャは非常に似ている成分を含んで、あなたは参照することができ https://blog.csdn.net/Hehuyi_In/article/details/94746160を 輝く心に。
図 https://www.mysql.com/common/images/PSEA_diagram.jpg
あなたは見ることができますMySQLサーバアーキテクチャは、4つの層に分かれています。
- ネットワーク接続層
- リレーショナルエンジン層(コアサービス層)
- ストレージエンジン層
- 物理レイヤファイル
まず、ネットワーク接続層
接続プール(接続プール)
- 等のバッファ管理ユーザー接続、スレッド、キャッシュニーズへの必要性
- ユーザーアカウント、パスワード、およびライブラリテーブル検証権限
第二に、リレーショナルエンジン層(コアサービス層)
これは、以下の4つのカテゴリ(も似たのSQLServer)に分割されています。
- SQLインタフェース(SQLインターフェイス)
- パーサ(パーサ)
- オプティマイザ(クエリオプティマイザ)
- キャッシュ&バッファ(キャッシュ)
1. SQLインタフェース(SQLインタフェース)
- ユーザーとリターン実行結果によって送信されたSQL文を受け取ります
2.パーサ(構文解析器)
- データ構造MySQLのノウハウに解析されたSQL文
- 同じ時にSQL構文チェックを解決します
3.オプティマイザ(クエリオプティマイザ)
- SQL文を最適化し、より良い実行計画(ノート必ずしも最善)を選択するには
- するために使用する戦略「 - プロジェクション - 選択した結合」
4.キャッシュ&バッファ(バッファ)
- query_cache、テーブルキャッシュ、レコードをキャッシュ、キーキャッシュ、キャッシュおよびその他の権利が含まれています
- クエリキャッシュは、主のMyISAMエンジンのために使用され、バージョン8.0で廃止されました。InnoDBは独自のセットのキャッシュメカニズムを持っているので、InnoDBエンジンのために意味がありません。
- これらの機能は、キャッシュの一部を別のストレージエンジンを使用する必要がありますされたサービス層の一部であることに注意してください
第三に、ストレージエンジン層
- MySQLのプラガブルなストレージエンジンには多くの種類がありますが、に応じて選択することができます。
- 参照型の主な目的は、 https://www.cnblogs.com/andy6/p/5789248.html
第四に、物理ファイル層
どのように上記のコンポーネントが一緒に動作しますか?MySQLで単純なクエリのライフサイクルを見てください:
五、MySQLは一般的なプロセスを問い合わせます
- コネクタ(つまり、クライアント)はMySQLサーバのリスニングポートに要求を開始します
- で 接続プールは、スレッドを割り当て、接続を作成し、データベーステーブルの権限のユーザー名とパスワードを確認します
- あなたが開いている場合query_cacheを(8.0バージョンが放棄された)、データが直接返された場合、ダウン進まないチェック
- SQLインタフェースの SQL文を受け、合格パーサの解析と文法テストを
- オプティマイザ最適化し、SQLより優れた実行計画を選択
- コールストレージエンジンインタフェース、オープンテーブルは、クエリを実行し、対応するキャッシュレコードのストレージエンジンをチェックキャッシュが存在するかどうか、もしあれば、戻り値は、そこにある、継続
- するために、ディスクの物理的なファイルのデータを検索します
- あなたは、必要なデータ、見つけたらまずライトバックキャッシュストレージエンジンを。あなたが開いている場合query_cacheを、書きます
- よるSQLインターフェース・クライアントへの戻りデータ
- テーブルを閉じます
- 閉じるスレッド
- 接続を閉じます
MySQLサーバのアーキテクチャおよびクエリの一般的なプロセスのシンプルな理解、次の研究アーキテクチャInnoDBストレージエンジン。
参考:「MySQLのパフォーマンスチューニングのピラミッド法則」