プログラミング、フリーダイビング、ブロックチェーンのブログ

プログラミング道場

自分の市場価値を知りたい人にオススメの記事です

【すぐできる】エンジニアとしての市場価値を診断してみよう!

目次1 エンジニアが市場価値を把握しておくべき理由2 エンジニアの市場価値を決める要素3 エンジニアにおすすめしたい市場価値診断ツール4 【最後に】正確な市場価値を知るなら転職エージェント エンジニアが市場価値を把握しておくべき理由 エンジ ...

続きを見る

私がオススメするプログラミング教材です

私がおすすめするプログラミング教材のまとめ【書籍】

目次1 これからエンジニアになりたい人へ向けた本2 プログラミング言語3 アプリ開発4 サーバー、インフラ、セキュリティなど5 機械学習系6 ゲーム開発7 データベース8 子供向け9 デザイン10 資格11 組織作り12 自作シリーズ13 ...

続きを見る

MySQLのexplainの見方

更新日:

記事の内容


この記事では、MySQLのexplainコマンドの見方を紹介します。
explainコマンドとは、SQLの実行計画を教えてくれるコマンドです。
explainコマンドの見方を知っておけば、きっと効率の良いSQLを書く際に役立つはずです。

type

type 説明
const PRIMARY KEYまたはUNIQUEインデックスのルックアップによるアクセス
最速
eq_ref JOINにおいてPRIARY KEYまたはUNIQUE KEYが利用される時のアクセスタイプ
constと似ているがJOINで用いられるところが違う
ref PRIMARY KEYまたはUNIQUEインデックスのルックアップによるアクセス
最速
range インデックスを用いた範囲検索
index フルインデックススキャン
インデックス全体をスキャンする必要があるのでとても遅い
ALL フルテーブルスキャン
インデックスがまったく利用されていないことを示す
OLTP系の処理では改善必須

key

オプティマイザによって選択されたキー。

key_len

選択されたキーの長さ。
インデックスの走査は、キー長が短い方が高速です。
インデックスをつけるカラムを選ぶ時には、そのことを念頭に置いて下さい。

ref

検索条件で、keyと比較されている値やカラムの種類。
定数が指定されている場合はconstと表示される。
JOINが実行されている時には、結合する相手側のテーブルで検索条件として利用されているカラムが表示される。

row

そのテーブルからフェッチされる行数の見積もりです。
このフィールドはあくまでもテーブル全体の行数やインデックスの分散具合から導き出された大まかな見積もりなので、実際にフェッチされる正確な行数ではないので注意が必要です。

extra

カラム 説明
Using where 頻繁に出力される追加情報
WHERE句に検索条件が指定されており、なおかつインデックスを見ただけではWHERE句の条件を全て適用することが出来ない場合に表示される。
Using index クエリがインデックスだけを用いて解決できることを示す
Covering Indexを利用している場合などに表示される
Using filesort filesort(クイックソート)でソートを行っていることを示す
Using temporary JOINの結果をソートしたり、DISTINCTによる重複の排除を行う場合など、クエリの実行にテンポラリテーブルが必要なことを示す
Using index for group-by MIN()/MAX()がGROUP BY句と併用されているとき、クエリがインデックスだけを用いて解決できることを示す
Range checked for each record JOINにおいてrangeまたはindex_mergeが利用される場合に表示される
Not exists MySQL はクエリーに対する LEFT JOIN 最適化を実行でき、LEFT JOIN 条件に一致する 1 つの行が見つかったら、前の行の組み合わせについて、このテーブルでそれ以上の行を調査しません。

まとめ

explainコマンドを知ることは、高速のSQLを書く第一歩です。
是非、この記事を見ながらSQLの実行計画と格闘して下さい。
また、explainやshow statusといったコマンドの詳細については、この本に書かれています。

Good luck for your engineer life!

MySQLをより詳しく勉強したい人には、この記事がオススメです

MySQLやデータベースの学習でおすすめの本【2022年最新】

目次1 初心者向け【入門編】2 中級者向け3 上級者向け4 データベースを自作したい人向け 初心者向け【入門編】 よくわかるSQL データベースやSQLになじみのない方にとっても、無理なく勉強できるように構成されている本です。 たくさんのサ ...

続きを見る


セキュリティをより詳しく勉強したい人には、この記事がオススメです

セキュリティの学習でおすすめの本と動画【2023年最新】

目次1 動画教材2 初心者向け3 IPAが発行している本4 中級者向け5 資格の本6 セキュリティエンジニアの求人 動画教材 情報セキュリティ】Ethical Hacking:ホワイトハッカー入門 ▼ 興味がある方は、画像をクリック この講 ...

続きを見る

関連コンテンツ

-MySQL, プログラミング

Copyright© プログラミング道場 , 2023 All Rights Reserved Powered by AFFINGER4.