这两天有一个任务表 t_task_list ,搜索条件下面都有,相关的索引也有,但就是用不到索引,应该是跟数据分布有关,所以对索引做了调整。
最重要的不是对索引做了调整,而是,不要以为建了索引就一定能用到,还是根据数据的分布情况来决定的,以后多注意吧,有慢查询,一定看sql,看explain。
alter table t_task_list drop key idx_bd_id_start_time_end_time;
alter table t_task_list add key idx_bd_id_start_end_time(bd_id,start_time,end_time);
//---------------------------------
Fingerprint
select * from `t_task_list` `t` where ((((object_type=?) and (status = ?)) and (start_time >= ?)) and (end_time <= ?)) and (bd_id = ?) order by deal_time desc
Last Sample on host BJ-M6-10-0-14-12 at 2018-07-23 19:32:39
More Samples
SELECT * FROM `t_task_list` `t` WHERE ((((object_type=2) AND (status = 1)) AND (start_time >= 1531670400)) AND (end_time <= 1532352974)) AND (bd_id = 211796) ORDER BY deal