mysql最左前缀原则学习笔记,in也可以走索引

通过我的测试得出的结论:
如果索引是(a,b,c)那么不只是a,ab,abc可以走索引,任何abc的排列组合都可以走到索引,or < > between and甚至是in都也是可以走到索引的。(我在很多文章看到说in不能走索引,包括在面试中,面试官也觉得不会走索引的,这个也能跟mysql的版本有关系,下来再去研究下)
在google我找到这样的解释
mysql最左前缀原则学习笔记,in也可以走索引
百度上说:
1,
mysql最左前缀原则学习笔记,in也可以走索引
2,
mysql最左前缀原则学习笔记,in也可以走索引
mysql版本:8.0.18
mysql最左前缀原则学习笔记,in也可以走索引
sql:

建立索引:
ALTER TABLE student ADD INDEX index_student (NAME,weight,height);

验证最左优先原则:
执行:EXPLAIN SELECT * FROM student WHERE NAME = ‘xiaohong’
可以看到走了索引
mysql最左前缀原则学习笔记,in也可以走索引
EXPLAIN SELECT * FROM student WHERE NAME = ‘xiaohong’ AND weight > 120
mysql最左前缀原则学习笔记,in也可以走索引
可以看到一样走了索引,最左优先说会从左向又一次匹配知道遇到> < between and就会停止匹配,

EXPLAIN SELECT * FROM student WHERE NAME = ‘xiaohong’ OR height IN (120,110) OR weight > 120
mysql最左前缀原则学习笔记,in也可以走索引
竟然这样也可以执行到索引。

结论:如果索引是(a,b,c)那么不只是a,ab,abc可以走索引,任何abc的排列组合都可以走到索引,or < > between and甚至是in都也是可以走到索引的。