序文
データベースはファイルで構成され、これらのファイルにSELECT、INSERT、UPDATEおよびDELETEなどのデータベース操作を実行するように、単にファイルを操作して変更することはできませんデータベースの内容を変更するには、データベースインスタンスを介してデータベースの操作を完了する必要がありますデータベースへ。
MySQL コンポーネント
- 接続プールコンポーネント
- 管理サービスとツールコンポーネント
- SQLインターフェースコンポーネント
- クエリーアナライザー・コンポーネント
- オプティマイザー・コンポーネント
- キャッシュ・コンポーネント
- プラグイン・ストレージ・エンジン
- 物理ファイル
に凝縮できます:
- 接続レイヤー:いくつかのクライアントと接続サービス。主に接続処理、認証、および関連するセキュリティソリューションに使用されます。
- サービス層: クエリの解析、分析、最適化、キャッシュ、すべての組み込み関数、およびトリガー、ストアドプロシージャ、ビューなどのすべてのクロスストレージエンジン関数を含むコアサービス関数のほとんどは、この層にも実装されています。
- エンジン・レイヤ: ストレージ・エンジンは MySQL におけるデータの格納と抽出を担当し、サーバは API を介してストレージ・エンジンと通信します。
- ストレージ層: データストレージレイヤで、主にデバイス上で動作するファイルシステムの上にデータを格納し、ストレージエンジンとのインタラクションを完了します。
MySQL の具体的なクエリの流れ 、または MySQL で SQL 文がどのように実行されるかを説明します 。
ソリューション
クライアントリクエスト ---> コネクションプール ---> クエリキャッシュ ---> パーサ ---> オプティマイザ ---> エクゼキュータ ---> エンジン階層に移動してデータを取得
クライアントがクエリ要求を開始すると、クライアントは、最初のデータベース接続プールとの接続を確立しようとすると、ユーザー認証が通過したときに、キャッシュにクエリを実行し、このデータのキャッシュがある場合は直接返され、ない場合は、アナライザは、SQLステートメントに字句解析と構文解析の操作を実行し、オプティマイザは、SQLステートメントを最適化し、最適な実行スキームを選択し、実行者は、ユーザーが実行権限を持っているかどうかに応じてステートメントを実行し、もしそうなら、このエンジンが提供するインターフェイスを使用します。次に、このエンジンが提供するインターフェイスを使用して、ストレージエンジンを介して返されたデータを取得します。