首页 新闻 会员 周边 捐助

MySQL语句疑惑,Where参数差一秒,解析完全不一样

0
悬赏园豆:50 [已解决问题] 解决于 2017-06-04 20:37

EXPLAIN两条sql,区别如下,GetTicketTime有索引,是datetime 类型:

1、【WHERE GetTicketTime>='2017-06-02 14:25:35' 】Extra:Using index condition; Using MRR; Using temporary; Using filesort

2、【WHERE GetTicketTime>='2017-06-02 14:25:34' 】Extra:Using where

这是为啥?

大于等于34秒的记录有40010条,大于等于35秒的记录有40000条,相差只有10条。

似乎35秒是个分界点,小于这个的,都跟34的情况一样,大于的,都跟35的一样。

大树v587的主页 大树v587 | 初学一级 | 园豆:157
提问于:2017-06-02 19:09
< >
分享
最佳答案
0

这种情况mysql优化器会根据你当前的数据量决定是否走索引

收获园豆:50
拓仲 | 菜鸟二级 |园豆:268 | 2017-06-03 11:44

请问能不能手动控制呢?或者是优化方法,运行结果是0.6秒跟25秒的区别。

大树v587 | 园豆:157 (初学一级) | 2017-06-03 16:52

@大树v587: 这是因为 表数据大部分都在这个范围,mysql就不会使用索引,进行全表扫描,跟性别字段不适合做索引一样的道理

拓仲 | 园豆:268 (菜鸟二级) | 2017-06-04 16:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册