白狗子的博客

「天上浮云如白衣,斯须改变如苍狗。」——杜甫

MySQL-最左前缀原则

2026年10月16日·Admin·2 次浏览

MySQL 最左前缀原则

是什么

对联合索引 (a, b, c),优化器按从左到右使用索引列:

  • 条件里包含最左列 a,才可能用上该联合索引(具体还受范围、函数等影响)。
  • 只有 b、c 而没有 a,通常无法使用该联合索引(与列顺序有关)。

与「辨识度」的关系

把区分度高、过滤性强的列放左边,往往能让前几列就过滤掉大量行;但根本规则仍是定义顺序 + 最左匹配,不是简单「谁更辨识度谁随便放」。

范围查询会「截断」

条件 a = ? AND b > ? AND c = ? 中,b 为范围后,右侧 c 往往无法再用于索引继续定位(仍可能出现在索引里做过滤,视版本与优化器而定,面试按「范围后停止匹配」理解即可)。

小结

联合索引 = 有序前缀树;查询条件要能从左连续匹配索引前缀,才最利于走索引。

© 2025 My Blog. Built with Nuxt.js v4