mysql中两个int字段建立联合索引,没有用到索引

博客内容讲述了在MySQL中,即使为两个int字段建立了联合索引,也并不保证在所有查询条件下都能被使用。作者通过调整索引,从idx_starttime_bd变为idx_bd_id_start_end_time,并观察Explain结果,发现索引未被使用,可能是由于数据分布导致。提醒读者,创建索引后需结合数据分布和查询条件来评估索引效果。
摘要由CSDN通过智能技术生成

这两天有一个任务表 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值