mysql in 和 between索引问题

2020-09-02 17:11发布

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

2条回答
劳资没心,怎么记你
2楼-- · 2020-09-02 17:15

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

查看更多
SAY GOODBYE
3楼-- · 2020-09-02 17:39

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

查看更多
登录 后发表回答