MySQL の部分とは何ですか?
- コネクタ: 管理接続、権限の確認。
- アナライザー: 字句解析、構文解析。
- オプティマイザー: 実行計画の生成、インデックスの選択。
- Executor: ストレージ エンジンを操作し、結果を返します。
ストレージ エンジン: データを保存し、読み取りおよび書き込みインターフェイスを提供します。
#関連学習の推奨事項: mysql ビデオ チュートリアル
#ConnectorIn最初のステップでは、まず MySQL データベースに接続し、次にコネクタを接続します。コネクタは、クライアントとの接続の確立、権限の取得、接続の維持および管理を担当します。
mysql -h $ip -u root -p
クエリ キャッシュ接続を確立した後、SELECT ステートメントを使用できるようになり、実行ロジックは 2 番目のステップであるクエリ キャッシュに進みます。 MySQL はキャッシュにクエリを実行して、このステートメントが以前に実行されたかどうかを確認し、実行されている場合は直接そのステートメントを返します。このモジュールは MySQL 8.0 以降削除されました。
アナライザークエリ キャッシュがない場合、MySQL はここから実行したいことの分析を開始し、作成した SQL ステートメントを分析する必要があります。アナライザーはまず字句解析を行って、文字列とそれが何を表しているかを特定します。次に、構文解析を実行して、作成した SQL ステートメントにエラーがあるかどうかを確認します。エラーがある場合は、エラーがスローされます。
オプティマイザーアナライザーを通過した後、MySQL はユーザーが何をしようとしているのかを認識します。この時点で、オプティマイザーはテーブル構造に基づいてどのソリューションを使用するかを決定します。そして発言の目的。
ExecutorMySQL は、アナライザーを通じて私たちが何をしたいのかを理解し、オプティマイザーを通じてそれを最も効率的に実行する方法を知っています。次に、エグゼキューターに入り、実際に SQL ステートメントを実行できます。
select * from users where name = ‘operator'
users テーブルの名前フィールドにインデックスがないと仮定すると、実行プログラムは InnoDB エンジン インターフェイスを呼び出して最初の行を取得し、名前が演算子と等しいかどうかを判断します。そうでない場合はスキップします。もしそうなら、結果にそれを入れてください。次に、エンジン インターフェイスを呼び出して次の行をフェッチし、テーブルの最後の行がフェッチされるまで同じ論理判断を繰り返します。最後に、結果セットがクライアントに返されます。
以上がSQLクエリステートメントはどのように実行されるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。