MySQL EXPLAINを調べた
MySQL Explain
MySQL Explainとは、DBがデータを探す一連の過程を人が読みやすくDB結果セットに示すもの。
MySQL Explainを使って、既存のクエリをチューニングすることができるだけでなく、インデックス戦略策定などのパフォーマンスの最適化のための全般的な業務を処理することができる。
使い方
EXPLAIN [EXTENDED] SELECT ... FROM ... WHERE ...
EXPLAIN [EXTENDED] SELECT ... FROM ... WHERE ...
項目 | 説明 |
---|---|
id | select IDでSELECTを区別する番号 |
table | 参照するテーブル |
select_type | selectのタイプ |
type | タイプ |
possible_keys | データを照会するときDBで使用できるインデックスリスト |
key | 実際に使うインデックス |
key_len | 際に使うインデックスの長さ |
ref | 中のインデックスと比較するカラム |
rows | クエリの実行時に調べる行 |
extra | 追加情報 |
出力結果(例)
********************** 1. row **********************
id: 1
select_type: SIMPLE
table: categories
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: 4
Extra:
1 row in set (0.00 sec)
select_type
********************** 1. row **********************
id: 1
select_type: SIMPLE
table: categories
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: 4
Extra:
1 row in set (0.00 sec)
SIMPLE : サブクエリや「union」がない最も単純なselect文
PRIMARY :最も外側のselect文
DERIVED :from文の中にあるサブクエリのselect文
SUBQUERY :最も外側のselect文のサブクエリ
DEPENDENT SUBQUERY : 基本的にSUBQUERYのようなタイプで、最も外側のselect文に「依存性」を持つサブクエリのselect文
UNION : union問い合わせ第二select文
DEPENDENT UNION : 外クエリに依存性を持つunion問い合わせ第二select文
type
system:0個または1つのrowを持つテーブル
const:テーブルに条件を満たしているレコードが一つであるとき、定数扱い
eq_ref:primary keyやunique not null columnに生成されたインデックスを使用して、結合している場合
ref:インデックスで指定されたカラム同士の '='、 '<=>'などの演算子を使用した比較で行われる結合
unique_subquery:1つの結果だけを返す 'IN'が含まれているサブクエリの場合
index_subquery:unique_subqueryと似ていますが、複数の結果を返す
range:特定の範囲のrowsをマッチングさせるインデックスが使用されている場合。 BETWEENやIN、 '>'、 '> ='などが使用される
all:結合時にすべてのテーブルのすべてのrowをスキャンする場合である。もちろん性能が最も良くない。
extra
項目 | 説明 |
---|---|
using index | カバーリングインデックス、インデックスデータ構造を利用してデータを抽出 |
using where | where条件でデータを抽出。typeがALLあるいはIndxタイプと一緒に表現すると、性能が良くないことを意味 |
using filesort | データの並べ替えが必要な場合に、メモリやディスク上でのソートの両方を含む。 |
using temporary | クエリ処理時に内部的にtemporary tableが使われる場合を意味する |
Author And Source
この問題について(MySQL EXPLAINを調べた), 我々は、より多くの情報をここで見つけました https://qiita.com/ozlee/items/a2e3f70f9c674f99c0f8著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .