我有一张简单的桌子->
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 显示优化器正在使用索引组合 1,它在其中索引了“id”,也会在第二种情况下发生。