MySQLのEXPLAIN結果の読み方。
typeフィールド値を高速な順にメモる。
・const
ユニークなキー(PK or UNIQUE)に対して定数で検索する場合に出る型。
SELECT * FROM my_table WHERE id=1;
・eq_ref
ユニークなキー同士で対応が取れる場合の型。
SELECT * FROM my_table, sub_table WHERE my_table.unique_column = sub_table.id;
・ref
インデックスが貼られたカラムで対応を取るか、式によって求められる場合の型。
インデックスがユニークに出来る場合はUNIQUEにしたほうがeq_refになって高速。
SELECT * FROM my_table, sub_table WHERE my_table.index_column = sub_table.id;
・ref_or_null
その名の通り、refにnullが加わっている場合(インデックスカラムがNOT NULLではない場合)
NULLは不定なので、セーフなデフォルト値を設定してNOT NULLにした方が良い。
(370)