MySQL-最左前缀原则
2026年10月16日·Admin·2 次浏览
MySQL 最左前缀原则
是什么
对联合索引 (a, b, c),优化器按从左到右使用索引列:
- 条件里包含最左列
a,才可能用上该联合索引(具体还受范围、函数等影响)。 - 只有
b、c而没有a,通常无法使用该联合索引(与列顺序有关)。
与「辨识度」的关系
把区分度高、过滤性强的列放左边,往往能让前几列就过滤掉大量行;但根本规则仍是定义顺序 + 最左匹配,不是简单「谁更辨识度谁随便放」。
范围查询会「截断」
条件 a = ? AND b > ? AND c = ? 中,b 为范围后,右侧 c 往往无法再用于索引继续定位(仍可能出现在索引里做过滤,视版本与优化器而定,面试按「范围后停止匹配」理解即可)。
小结
联合索引 = 有序前缀树;查询条件要能从左连续匹配索引前缀,才最利于走索引。