为了加快查询速度,我们经常对数据表的多个字段建立联合索引,这里特别对联合索引的最左原则做一下介绍。
当我们使用多个where = 或者 where in 条件进行查询的时候,MySQL会按照已建立的索引,自动地调整where条件的先后顺序,以便从左到右匹配联合索引。
但是如果所有的where条件都没有匹配到联合索引的最左边的那个字段的时候,将会匹配索引失败,导致查询不走索引。
另外,MySQL的联合索引会一直向右进行匹配,直到某个字段的where条件中使用了范围查询(含 >, <, between, like)后,接下来的字段将不会使用索引。