优化器之所以倾向于选择时间字段索引,估计是因为你where条件里面时间范围区间在统计信息记录的范围之外了,统计信息永远是旧的。例如统计信息记录的是昨天以前的数据,你sql里写了个今天的时间范围,那优化器根据统计信息就认为你这个sql里时间范围上是没有数据或者非常少数据的,因此走时间范围索引筛选能力就非常强。
1、建议删除手机号字段上那个索引,创建(手机号,时间)联合索引,减少优化器的选择索引的顾虑
2、试一下v2版本的统计信息看能否改善
3、绑定执行计划或force index
1 个赞