首页 新闻 搜索 专区 学院

mysql in 和 between索引问题

0
悬赏园豆:20 [已解决问题] 解决于 2020-09-02 17:43

mysql版本是5.7.16,想请教下in和between是否会走索引的问题
1.如果只有一个in条件,in的括号里面为一个参数,发现可以走索引
2.当in有两个参数的时候,就不会走索引了
3.in和between一起用(即使in里面只有一个参数),发现始终不会走索引(建立了联合索引)
而且当空表和表里有数据的时候,是否走索引也不一样...
有大佬能详细解答吗

我恰芙蓉王的主页 我恰芙蓉王 | 菜鸟二级 | 园豆:276
提问于:2020-09-01 21:55
< >
分享
最佳答案
0

in多的话会被优化为Join,应该会走索引的,是不是你数据量小被优化器给优化掉了,它认为走索引不如直接循环,毕竟在量小的情况下索引需要回表而循环不需要

收获园豆:15
56180825 | 小虾三级 |园豆:1365 | 2020-09-01 22:01

可能是这样吧,就测试了空表和几条数据,看来可能是这个原因

我恰芙蓉王 | 园豆:276 (菜鸟二级) | 2020-09-02 17:42

感谢解答

我恰芙蓉王 | 园豆:276 (菜鸟二级) | 2020-09-02 17:42
其他回答(1)
0

in,between 单用,一起用是走索引的。可以 explain 一下就知道了。没走索引的话。就是被优化了

收获园豆:5
flyfishing | 园豆:765 (小虾三级) | 2020-09-02 09:23

应该是mysql自己优化了

支持(0) 反对(0) 我恰芙蓉王 | 园豆:276 (菜鸟二级) | 2020-09-02 17:42

感谢解答

支持(0) 反对(0) 我恰芙蓉王 | 园豆:276 (菜鸟二级) | 2020-09-02 17:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册