1、表 table_manual
已有索引:idx_0926 (status, catch_lock, order_added)
需执行的sql如下:
SELECT request_id
FROM table_manual
WHERE catch_lock = 0 AND job_status IN (0, 1)
ORDER BY order_added ASC LIMIT 1
执行计划显示:
但是从执行结果看,依旧很慢,几乎为全表扫面,行扫描与行返回之比为989924。
2、分析:
从执行计划分析看,似乎会走索引idx_0926,实则没走索引,是全表扫描。
原因:对于组合索引idx_0926,在使用索引的时候由左前缀原则
3、针对where语句新建索引,或者优化现有索引顺序。