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
参考サイト
関連記事
-
-
SortableJSを使ってデータの並べ替え&保存
あるシステムを拝見した際にtableタグ内に並んでいる項目をドラッグ&ド ...
-
-
MySQLで「server has gone~」というエラーの対応方法
MySQLで「MySQL server has gone away」というエラー ...
-
-
MySQLでtime型データからint型データの減算を行い、減算後のデータで条件検索する方法
MySQLでtime型データからint型データの減算を行い、減算後のデータを検索 ...
-
-
MySQLでdatetime型にもインデックスを使用して高速化を図る方法
ログ関連のデータを格納するテーブルがあり、集計を行う際に非常に時間がかかった。レ ...
-
-
MySQLでグループ化したものを条件で絞る(HAVING)
正規化したテーブルがあってその中には idとtagのカラムがある。 でtagの方 ...