a minute ago

ExplainでMySQLパフォーマンスチューニング


Explainの出力項目

カラム意味
idSELECT 識別子。駆動票、内部表の順で出る
select_typeSELECT
table出力行のテーブル
artitions一致するパーティション
type結合型
possible_keys選択可能なインデックス
key実際に選択されたインデックス
key_lenn)選択されたキーの長さ
refインデックスと比較されるカラム
rows調査される行の見積もり
filteredテーブル条件によってフィルタ処理される行の割合
Extra追加情報

ネガティブ指標と対応

typeがALL,またはindex

ALLはフルテーブルスキャンを意味するため、ほとんどのケースで不適切。

検索条件、結合条件のカラムにindexを貼ることで回避可能。

typeの主な値一覧

  • const

    テーブルに一致するレコードが最大で 1 つしかない。const テーブルは1 回しか読み取られないため、非常に高速。

  • eq_ref

    最適な結合型。joinで PRIMARY KEY または UNIQUE NOT NULL インデックスを利用。

  • ref

    joinで、キーが PRIMARY KEYUNIQUE インデックスではない場合の等価検索。

  • range

    インデックスで範囲検索

  • index

    インデックスツリーがスキャンされることを除いてALL と同じ

  • ALL

    フルテーブルスキャン

ExtraにUsing filesort, Using temporaryが表示されている

Using filesortだけなら問題にならないが、Using temporaryが一緒に表示された場合は一時テーブルを作成しているため非常に重い。

ソート条件のカラムにindexを作成することで回避可能。


Related Articles