MySQL 联合索引和最左前缀原则是什么?
联合索引(复合索引)idx(a, b, c):按 a、b、c 顺序建立 B+ 树(先按 a 排序,相同再按 b...)。最左前缀原则:查询必须从最左列开始连续匹配才能用到索引——能用:a、a+b、a+b+c;不能用:b、c、b+c(跳过了 a)。优化:① 查询条件按索引列顺序书写(优化器会调整等值顺序,但范围/排序不行);② 把最常用/区分度高的列放最左;③ 范围查询(>、<、between)后面的列无法继续用索引(MySQL 8 有索引跳跃扫描优化部分场景)。
一起交流
分享经验,让问题更进一步
讨论,从你的观点开始
还没有回复,欢迎补充经验或分享不同的思路。