LoginSignup
0
0

SQLの実行計画とは?

Last updated at Posted at 2023-10-18

先に結論

クエリー実行計画 (つまり、MySQL がクエリーをどのように実行するかの説明) を取得するために使用されます。

一言で言うと、クエリの中で何が行われているかがわかるということ。
EXPLAINを使うと抽出するレコード数、インデックスの使用、JOINの条件などが記載された表が出力されます。
簡単なクエリしか使用しないならば、特に実行計画を行う必要はありません。
しかし、実務の中で複雑なクエリを投げることは往々にしてあります。
そんな時に便利なのがこのEXPLAINです。

EXPLAINって?

こんな形式で書く

EXPLAIN SELECT *
FROM HOGE
INNER JOIN FUGA
ON HOGE.HO = FUGA.FU
WHERE = ...

SELECTDELETEINSERTREPLACE および UPDATEの前にEXPLAIN を付けて実行するだけ。
これによって、テーブルがどのように、どんな順番で結合されているかに関する情報や、処理する方法を教えてくれます。

出力カラム

カラム JSON名 意味
id select_id SELECT識別子
select_type なし SELECT 型
table table_name 出力行のテーブル
partitions partitions 一致するパーティション
type access_type 結合型
possible_keys possible_keys 選択可能なインデックス
key key 実際に選択されたインデックス
key_len key_length 選択されたキーの長さ
ref ref インデックスと比較されるカラム
rows rows 調査される行の見積もり
filtered filtered テーブル条件によってフィルタ処理される行の割合
Extra なし 追加情報

重要なのはtypeです。ここにはテーブルの結合方法が示されます。
適切なものから、不適切なものまで存在し、ここを修正することで処理効率が改善される可能性が高いです。

詳しくはMySQL公式を見た方がわかりやすいので割愛。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0