免責事項:この記事は従って、ブロガーオリジナル記事です。CC 4.0 BY-SAの著作権契約を、再現し、元のソースのリンクと、この文を添付してください。
ディレクトリ
説明このコマンドは通常、遅い、実装効率の悪いSQL文の理由を分析するために使用されます。テーブルとの接続を接続する方法を含むselect文、select文の実行プロセスの指定されたスケジュールMySQLの実装を取得するためのコマンドについて説明します。例:
1、ID
上から下へ、図面の同じサイズの場合に行わ; idは実行順序を示し、多数の前に行います。例えば、上記の例では、底部片は、最初のコマンドID = 2を実行します。
関連するマルチテーブルの場合には、ID一般関連テーブルは同じであるが、関連するマスターテーブルとして底に最初のテーブルトップ。
2、SELECT_TYPE
SELECTは、共通の価値観のタイプを示します。
- SIMPLE:単純なSELECTクエリは、クエリは、サブクエリ、ユニオンが含まれていません。
- PRIMARY:複雑なクエリは、いくつかのサブ部分を含む、最も外側のクエリはプライマリとしてマークされています。
- UNION:もしは、第二連合で起き選択した後、UNIONとしてマークされます。クエリのFROM句に含まれている場合、SELECTが導出されるUNIONは、外側の層がマークされます。
- UNION結果:SELECTリストのUNIONから取得した結果、
- SUBQUERY:句は、クエリに含まれるサブSELECTまたはIn;
- 派生:FROMリストに含ま誘導体、サブクエリが由来とマークされ、MySQLは再帰的にこれらのサブクエリは、一時テーブルに結果を入れます。
3、テーブル
これは、出力テーブルのセット、データ句テーブルを得ることである、すなわち行を指します。
4、タイプ
タイプは、スキャンの種類を指します。14種までのタイプでmysql5.7タイプ、一般的な次のカテゴリ:
- すべて:全表スキャン。
- インデックス:インデックスの順序は、テーブル全体をスキャンし、テーブルリターンがデータを読み取ります。インデックス・スキャンに応じてより高速なすべての場所よりも、この場合は嘘が、注文されていることを唯一のもの。
- 範囲:索引スキャン、範囲インデックス型の等価物の範囲があります。
- REF:検索条件が等号条件と非一意のインデックスの使用を使用して記載されています。
- ref_eq:スキャンREFユニークインデックス。
- CONST:一意のインデックス値と一意の定数決定インデックス列を走査します。この時点で、MySQLのクエリの最適化は、このセクションで一定になりました。
- ヌル:行う場合、最適化プロセスでのMySQL分解文も、テーブルまたはインデックスへのアクセスなしでは、例えば、最小値で索引付けされた列から選択は、個別のインデックス・ルックアップを介して行うことができます。
5、possible_keys、キー和key_lenに
、インデックスを表すために使用されるインデックスは、実際に使用され、実際に使用される列インデックスの長さであってもよいです。
6、REF
一致条件を接続することは、テーブルのインデックス列の値を見つけるために使用される、すなわち定数、または列を示しています。
7、行
回数は、内部ループ、及びライン数がデータを見つけるためにスキャンとして理解することができます。
8、エクストラ
- 一時的な使用:一時テーブル命令を。MySQLの一時テーブルはメモリ内とディスク上に分割して2、メモリー内の一時テーブルの優先使用され、一時テーブルが大きすぎると、それは、ディスク上の一時テーブルとしてダンプされます。一時テーブルは、典型的には、より複雑な並べ替え、重複排除、クエリパケット、等、又は対応テーブルを扱います。
- インデックスを使用する:インデックスがクエリをカバー。インデックスは、インデックスを指すカバーするすべてのフィールドがテーブルに再読み込みデータバックすることなく、選択する必要が返すために使用することができます。
- ストレージエンジン戻りライン後のMySQLサーバを、次いで濾過エンジンを使用して、代わりにサーバに格納されている;ここで使用
- filesortレコードを使用した:我々は、ディスクファイルによって順序付けられていると言っていない、簡単に言うと、ソートからインデックス異なっを使用して、ソート処理しました。次に、データの量が(セクタのソートバッファ)ソーティングファイルメモリでソートされる場合、あろうデータの場合は少量で、
- グループごとのインデックスを使用:特定の状況スキャンMySQLのサポート緩い指数、例えば、パケット内のクエリの最大値と最小パケット。
- インデックス条件の使用:見つけるためにインデックスを使用しますが、テーブルへのデータバックを照会する必要があり、他の他の条件WHEREでろ過。
- 離れて最適化されたテーブルを選択:MySQLは内部テーブルから対応する値を読み取るために最適化された実行計画は、テーブルから削除され、定数に置き換えられています。クエリ列全体インデックス付き列分()、MAX()、カウント数()このプロンプトが表示されます。