最左匹配

121 阅读1分钟

最左匹配是指在使用复合索引时,索引的最左边的列被用于查询条件时才能充分发挥索引的效果。在MySQL中,复合索引是按照创建时列的顺序进行排序的。

例如,如果有一个复合索引 (col1, col2, col3),那么以下查询可以充分利用索引:

SELECT * FROM your_table WHERE col1 = 'value1' AND col2 = 'value2';

这是因为查询条件中使用了索引的最左边的两个列 col1col2。MySQL会利用这个索引快速定位匹配的行。

但如果查询条件不是最左边的列开始,即便查询条件中包含了索引的某个列,也无法利用索引的最左匹配优势。例如:

-- 索引无法被充分利用
SELECT * FROM your_table WHERE col2 = 'value2';

在这个例子中,虽然 col2 在索引中,但是查询条件并没有从最左边的列 col1 开始,因此最左匹配的优势无法得到充分利用,索引效率可能会受到影响。