231 字
1 分钟
MySQL 联合索引的最左前缀匹配原则
联合索引需要按字段顺序从最左侧开始匹配。索引 (a,b,c) 可以支持 a、a+b 和 a+b+c,但跳过 a 直接查询 b 或 c 时无法充分利用索引。
常见判断
WHERE b = 1 AND a = 2 仍可能使用索引,因为优化器会调整条件顺序;书写顺序不等于索引匹配顺序。
范围条件会影响后续列的精确定位。a >= 1 可以先定位到 a = 1 的起点,部分场景仍能利用后续顺序;当条件跨过多个 a 值时,后续列通常不能继续用于缩小范围。
联合索引如何设计
- 高频查询条件优先放左侧。
- 区分度高的列优先过滤更多数据。
- 范围查询列尽量靠后,避免阻断后续匹配。
- 有排序需求时把排序字段纳入设计,减少额外排序。
MySQL 联合索引的最左前缀匹配原则
https://blog.xqcherry.top/posts/interview/mysql/leftmost-prefix-index/ 目录