MySQL 索引的最左前缀匹配原则是什么?

March 12, 2025 / 老大 / 6阅读 / 0评论/ 分类: 数据库

回答重点

MySQL最左匹配原则是指在使用联合索引时,查询条件必须从索引的最左侧开始匹配,才能走索引进行查询。如果联合索引包含多个列,查询条件必须包含第一个列的条件,然后第二个列,第三个列...

底层原理

联合索引在B+tree中的排列方式遵循从左至右的顺序,如联合索引(a, b, c),在B+tree中的排序就是先按a排序,a相同,则按b排序,b相同,则按c排序。

常见场景

  • 如果遇到范围查询 ><:停止匹配,不走索引(筛选后的数据是无序的)

  • 如果遇到 >=<=BETWEEN、前缀 like(xx%)的范围查询,不会停止匹配,走索引(都包含一个等值判断,可以直接定位到某个数据,然后往后扫描)

MySQL 8 为什么有些时候不满足最左匹配原则也能利用索引查询?

8.0.13 版本引入了 Skip Scan Range Access Method,在一定条件下,利用范围扫描替代全表扫描。MySQL隐式的构造了查询条件,拼凑包含左边索引的查询条件,使得查询条件满足最左匹配原则,走索引。

#MySQL(21)

评论