MySQLでSELECT時にインデックスを指定する方法
2026/10/02
MySQLでインデックスを作成しているのにSELECT時に使用されていないというケースがあった。オプティマイザにインデックスを指定することで解決できた。以下に対応方法をメモ。
対応方法
ソースコード
SELECT * FROM `test_table` FORCE INDEX (インデックス名) WHERE ~~; SELECT * FROM `test_table` USE INDEX (インデックス名) WHERE ~~;
USEとFORCEの違い
どちらもインデックスを指定するがFORCEの方が強制力が強い。
リファレンス
インデックスヒント
https://dev.mysql.com/doc/refman/8.0/ja/index-hints.html
参考サイト
関連記事
-
-
MySQLにてSELECT時にdate型のカラムから年齢を計算し取得する方法
MySQLにdate型のカラムに誕生年月日が格納されており、そこから年齢を計算し ...
-
-
InnoDBのオートインクリメントで抜け番が発生する原因について
MySQLのInnoDBでIDというカラムにオートインクリメント設定していたが、 ...
-
-
MySQLで全国の市区町村のデータを入手し、抽出する方法
都道府県と市区町村が連携したセレクトメニューを作成したかった。具体的には大阪府を ...
-
-
MySQLでグループ化したものを条件で絞る(HAVING)
正規化したテーブルがあってその中には idとtagのカラムがある。 でtagの方 ...
-
-
WordPressでデータベース接続確立エラー発生時の対応方法
WordPressで「データベース接続確立エラー」というエラー表示がされた。大抵 ...