EXPLAINを使ってSQL文の実行計画を調べる

kazuki-tohyama 9views 更新:2017年7月10日

SELECT文がどのような検索を行っているのか調べるために、文の最初にEXPLAINを付けて実行することで項目を確かめることが出来ます。
Mysqlの場合EXPLAINをつけて実行すると、

> EXPLAIN SELECT * FROM hoge;
| id | select_type | table | type | possible_keys | key    | key_len | ref   | rows    | Extra
| 1  | SIMPLE      | hoge  | ref  | index1        | index1 | 4       | const | 12      | Using where,Using filesort

といったような項目が出力されます。
項目名の意味は主に、
select_type = SELECTの種類
table = テーブル名
type = 結合型(いろいろ存在する)
possible_keys = このテーブルが使用できるキー、インデックス
key = 実際に使用したキー、インデックス
key_len = キーの長さ
ref = インデックスに対して比較されるカラムまたは定数
rows = 検索クエリの実行に必要な行数
Extra = 追加情報
といった意味を持っています。公式リファレンスや様々なサイトを参考にしました。

https://dev.mysql.com/doc/refman/5.6/ja/explain-output.html
http://nippondanji.blogspot.jp/2009/03/mysqlexplain.html
http://qiita.com/Tsuji_Taku50/items/43eb2a41915d03173773

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません