建立联合索引(MySQL8、MySQL8、MySQL8)
测试案例:
explain SELECT * FROM `user` where name='张三'
explain SELECT * FROM `user` where name='张三' and age='20'
explain SELECT * FROM `user` where name='张三' and age='20' and gender='1'
explain SELECT * FROM `user` where name='张三' and gender='1'
explain SELECT * FROM `user` where age='20'
explain SELECT * FROM `user` where age='23' and gender='1'
explain SELECT * FROM `user` where gender='1'
验证结果截图:
结论:
还是遵循了最左原则,不过跟mysql5有点不一样。
前三者都正常使用了索引,没有问题。
第四个where没有了中间的字段,有用到索引,但是只用到一部分。
如果没有用到最左的字段,也能用到索引,但是索引类型(type)的级别为index,劣于前者(ref)。