EXPLAIN EXTENDED
SELECT * FROM table_name
-- FORCE INDEX(dummy_date)
USE INDEX(dummy_date)
where dummy_date
between '2020-12-01' AND '2020-12-31'
AND name='something';
ALTER TABLE `table_name` ADD INDEX `dummy_date_index`(`dummy_date`)当我执行这个查询时,索引不起作用,但是如果我使用force index,那么索引就会起作用。请告诉我对数百万行使用索引的正确方法。
发布于 2021-02-03 02:40:09
甚至比MySQL not using indexes with WHERE IN clause?更好
使用更好的索引,不要费心使用或强制:
INDEX(name, dummy_date)无论如何,如果表的大部分都在那个月,那么使用INDEX(dummy_date)的效率就比扫描表的效率低。
https://stackoverflow.com/questions/66007286
复制相似问题