mysql范围查找索引失效问题

最近遇见一个问题,有个sql语句,建立了索引,却不生效

再看一下这个表的索引情况

 

明明有索引的,却失效了,为何?百思不得其解啊。。。。

 

那换个思路试试?

 

看见没,缩小范围,索引就生效了

那么我们来分析一下

全表数据

按月查询数据

按周查询数据

 

总数据大概60万条,3月份的数据大概20万,占比三分之一,如果是按周,则大概是4万条,占比百分之六

所以当查询3月份的数据时候,mysql认为数据检索量已经超过某个阈值,就会自动进行全表扫描,所以索引失效。

具体这个值是多少,目前我还不清楚,如果知道的大牛麻烦告知我一下。

 

解决方案:

修改范围条件,缩小范围,尽可能减少触发全表扫描。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值