正确理解联合索引的最左匹配原则

前提:假设a,b,c,d的联合索引idx_combo

最左匹配到底是什么意思

  • 最左匹配指的是查询条件中包含以下之一的条件组合,都可以走索引idx_combo
  • a
  • a,b
  • a,b,c
  • a,b,c,d
  • 最左指的是它们是a,b,c,d左起的连续一部分

取哪些字段是组合而非排列

  • 比如a,b,c这3个列的组合,无论他们以怎样的顺序出现在sql里,都可以走索引idx_combo
  • 可以得到a,b,c这个组合的可能有种排列。
  • 完全不用担心在sql里写成了a,c,b是不是就走不了索引了
  • mysql的优化器会优化a,c,b这种顺序为a,b,c,一样可以走索引idx_combo
  • 以上结论,是在mysql中通过explain调整where条件中abcd的顺序后得出的结论。

你可能感兴趣的:(正确理解联合索引的最左匹配原则)