データベース内のSELECTクエリが何の実装を経験しています

MySQLで毎日扱っている、あなたは、単純なSELECT文を実行知っている、私たちはどのようなプロセスを経てい?

 

まず、MySQLは主にサーバとストレージ層の2つの部分から構成されています。サーバー層は主に、コネクタ、クエリキャッシュ・アナライザ、オプティマイザ、エグゼキュータを備えます。ストレージ層主にデータを保存し、クエリに使用され、一般的に使用されるストレージエンジンInnoDBはありますが、MyISAMテーブルは、MySQL 5.5.5バージョンは、後にデフォルトのストレージエンジンとしてInnoDBのを使用しています。

 

コネクタ

コネクタが接続mysqlクライアントとサーバを確立するために主に責任がある、接続が成功すると、それは現在のユーザーの接続の権利を取得します。ここでは、接続が成功した後に取得した権利は、全体の接続のために有効な、ユーザーの権限を変更するには、管理者アカウントを使用している場合、現在持って接続する権限は、次の更新が許可を再接続しますまでだけ待つように、変更されません。

 

クエリキャッシュ

接続すると、それが正式にSELECT文を実行し始めたが、クエリを実行する前に、MySQLは記事の次キャッシュの内容になりますキャッシュから直接読み取るキャッシュがある場合声明は、存在しないと、もはや実行バックデータを返しませんクエリを終了する手順。

 

場合は、次のキャッシュの実行に進み、キャッシュ内の結果と文を保存しません。

 

注意:mysql8この機能なしクエリキャッシュを持っていませんした後、キャッシュが出て空にすることは非常に簡単ですので、ヒット率が比較的低いです。あなただけの内容ではなく、それが空に別の更新で使用するのに十分な時間をキャッシュされたように長いテーブルの上に更新があると、テーブル上のすべてのキャッシュは、空になります。

 

アナライザ

キャッシュを見つけていないので、あなたは、SQL文が確かに実行する前に解決する必要があるSQL文の実行を開始する必要があります。SQL文の構文と意味解析を中心アナライザ、単語が存在する照会されるスペルミスだけでなく、テーブルやフィールド検査されているかどうかを確認してください。

 

エラーが返されますパーサが似て検出された場合は、このエラーメッセージ、およびクエリ操作の最後に「あなたは、SQLのエラーを持っています」。

 

オプティマイザは
その後、アナライザによって、MySQLのも、あなたが操作を実行したい理解しています。通常、同じSQL文に対して、テーブルの接続順序を確認する方法は、そのような複数のテーブルがクエリに関連した複数のインデックスがある場合、そのインデックスの選択肢として、プログラムの内部MySQLの実装の様々ながあるかもしれません。

 

これらのプログラムの結果は同じですが、効率は同じではありませんので、実行する前に、MySQLはこれに対する最適解は、デバイスのメインの仕事を最適化することで見つけようとする必要があります。MySQLはなく、一時的に理由を説明するの背後に滞在し、ここでは詳細に行くときに間違ったプログラムを選ぶことがあるでしょう。

 

アクチュエータ

オプティマイザ後の計画、選択されたプログラムに従って、SQL文の実行にアクチュエータを選択します。以前の私たちが前に言っている、コネクタ内の現在のユーザーのアクセス許可を読み取り、コネクタはのみのみ許可し、判断し、チェックする権限を取得します。

 

したがって、アクチュエータで、該当する権利と返されるプロンプトなし権限がない場合は、権限を判断します文を実行する前に。

 

ここでは、時にはそれがアナライザを取ることが、なぜコネクタは、直接それは、ここで私はあなたがMySQLのテーブルを照会するので、それはかもしれないと思う必ずしも文字通り表のSQL文のものに限定されるものではなく、許可を決定していない、尋ねることができますオプティマイザの後、最後に実行する方法を決定し、それが正当化されるアクチュエータのパーミッションを確認してください。

 

キャッシュは、以前のクエリキャッシュで発見された後場合は、当局は結果を返す前にチェックを行います。

 

当局による検証の後、それが照会するストレージエンジンが提供するテーブル、コール・インターフェースを開くために継続し、結果セットのデータを返します。

 ここでは、クエリが実行されるSQLステートメントが終了しました。根底にあるMySQLを達成するための各ステップは非常に複雑で、徐々に深い理解を必要とラフ、単に一般的なプロセスを、話します。

おすすめ

転載: www.cnblogs.com/gjc592/p/11228331.html