前言
看到一些关于mysql联合索引最左前缀匹配的文章,发现有些并不是完全正确,所以整理一下这方面的内容。
最左前缀匹配原则
在mysql建立联合索引时会遵循最左前缀匹配的原则,即最左优先,在检索数据时从联合索引的最左边开始匹配,示例:
对列col1、列col2和列col3建一个联合索引
1 |
|
KEY test_col1_col2_col3 on test(col1,col2,col3);
联合索引 test_col1_col2_col3
实际建立了(col1)、(col1,col2)、(col,col2,col3)
三个索引。
1 |
|
SELECT * FROM test WHERE col1=