私は簡単なテーブルを持っています->
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY
by_id INT UNSIGNED NOT NULL
posted_on INT UNSIGNED NOT NULL
私のテーブルエンジンはMyISAM
です。
複数の列のインデックスが必要combo1
ですby_id,posted_on,id
このクエリを実行します->
EXPLAIN SELECT * FROM books
WHERE by_id = '1' AND posted_on = '0'
ORDER BY id DESC LIMIT 7;
Extra
コラムは言うそしてUsing where
キーコラムは言うcombo1
しかし、私がこのクエリを実行すると->
EXPLAIN SELECT * FROM books
WHERE by_id IN(1,7,10) AND posted_on = '0'
ORDER BY id DESC LIMIT 7;
Extra
列にはが表示さUsing where; Using filesort
れ、キー列にはが表示されますcombo1
。
filesort
QEPは、オプティマイザが「id」インデックスが付けられたインデックスcombo1を使用していることを示しているのに、なぜ2番目のケースで発生するのですか。