スポンサーリンク

MySQLのEXPLAIN!とりあえずここだけ見とけ!

毎度selectするときには確認するべきexplain

このexplainの結果を見ることでselectするときに遅くないかどうか確認することができる

その読み方を毎度わすれてしまうのでメモとして記しておきます

以下のサイト様を参考にさせていただきました

mysqlのEXPLAINの簡単な見方
mysqlのEXPLAINの見方ってマジ意味わかんないので調べてまとめ。 それとサブクエリにもちゃんと個別でIndex効きます。 問題なのは基本1テーブルにつき、Indexが1つしか使わない仕様。 基本とかいうけど別にor検索なら今は自動で2つIndex使ってくれる。 ...

 

とりあえず見るべきは以下2つ

1.type

2.Extra


1.typeについて

テーブルに対してどういうアクセスをしているかを示す。

■const
「PRIMARY KEY」もしくは「UNIQUEINDEX」を使ったアクセス方法。
INDEXを使っているので早い。しかも一意性のあるINDEXなのでさらに早い。
最速。
※結果は必ず1行か0行。
■ref
「INDEX」を使ったアクセス方法。
INDEXを使っているので早い。一意性でないINDEXを使っているため「const」よりは遅いが早い。
超速い。
※結果は0~n行。
■range
「INDEX」を使ったアクセス方法。
INDEXが一意性だろうが無かろうが範囲検索すると出てくる。IN句等で必ず出てきます。
超速い。
※結果は0~n行。
結論:refかrangeを狙おう。constには基本できないらしい

2.Extraについて
■Using where
いつでも見る。見ない方がおかしい。
whereを掛けないか。
もしくはtypeが「const」だったらでない。
■Using temporary
一時テーブルのことである。。
これがあると若干遅くなるが、一時テーブルのレコード数が多いと一気に遅くなる、激遅。
■Using filesort
クイックソートのことである。たまに出てくる。
これがあると若干遅くなるが、「Using temporary」と一緒にでてくると一気に遅くなる、激遅。

とりあえずこれだけ確認できればよさそう

コメント

タイトルとURLをコピーしました