MySQLの検索でINDEXを指定する

通常MySQLのオプティマイザが使用するINDEXを選んでくれますが、
Select句が複雑だったりする場合意図したインデックスが使われないことがあります。

INDEX名: dtb_products_class_multi1

というインデックスがあって、検索で使う場合はFROM句のあとに書きます。

SELECT * FROM dtb_products_class USE INDEX(dtb_products_class_multi1) WHERE del_flg = 0 GROUP BY product_id;

指定したインデックスが使われていることを確認する

EXPLAIN SELECT * FROM dtb_products_class USE INDEX(dtb_products_class_multi1) WHERE del_flg = 0 GROUP BY product_id;