最左匹配原则是指在使用复合索引(也叫联合索引),即由多个列组成的索引时,只有从索引的最左边的列开始进行查询,才能利用到该复合索引。

例如,如果有一个联合索引为 (col1, col2, col3),那么只有按照以下顺序进行查询才能利用该索引:

  • col1
  • col1, col2
  • col1, col2, col3

而如果查询是这样的:

  • col2
  • col2, col3

则不能使用该复合索引。

为什么必须要最左匹配?

例如,我们以 (年龄,姓名,住址) 为联合索引,如下图所示: image.png 此时只有我们使用了最左匹配原则:(年龄)或(年龄,姓名)或(年龄,姓名,住址) 才能顺利的找到对应的数据,否则将无法使用上图中的联合索引进行高效的查询了。