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で同一サーバーの異なるDB内のテーブルをJOINする
同一のMySQLサーバーでdb1データベースのtable1テーブルと、db2デー ...
-
-
MySQLのトリガーを使用して特定のテーブルの操作を行った際に別テーブルにログを残す方法
MySQLにトリガーという機能があるらしくどのようなものか調べたところ、事前に「 ...
-
-
エックスサーバーでMySQLのサイズに注意
エックスサーバーで自動更新のログをMySQLに保存するようなシステムを動かしてい ...
-
-
MySQLでテキスト(日本語、半角英数字)を暗号化・復号化する方法
MySQLでデータを登録する際に暗号化したいというケースがあった。対象のデータは ...
-
-
PHPでmysqli関数使用時のプリペアドステートメントの利用方法
PHPでMySQLを扱う際はmysqli関数を、エスケープの際はreal_esc ...