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で特定の値を加算しつつNULL値の場合は0にする方法
いくつかのコードに対して投票を行い、その合計値をスコアとして出したい。ただ、投票 ...
-
-
MySQLのTEMPORARY TABLE(テンポラリテーブル)で高速化を図る方法
MySQLで5000万件ぐらいデータが入っているテーブルから日本語検索しないとい ...
-
-
MySQLでSELECT時に数値を3桁ずつのカンマ区切りに変換する方法
MySQLで商品価格のような数値の値を3桁ずつのカンマ区切りで取り出したいという ...
-
-
MySQLでデータベース単位とテーブル単位のデータサイズ(容量)の調べ方
VPSの各種ファイルを整理している際に「MySQLも不要なデータを削除すればいい ...
-
-
WordPressサイトのロードアベレージが高い際の対応方法
あるWordPressサイトのロードアベレージが先月ぐらいまでは通常0.5前後で ...