在看 http://tech.meituan.com/mysql-index.html 这篇文章的时候,里面写到创建索引的几大原则中有一条是:
最左前缀匹配原则,非常重要的原则, mysql 会一直向右匹配直到遇到范围查询(>、<、 between 、 like)就停止匹配,比如 a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)顺序的索引, d 是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到, a,b,d 的顺序可以任意调整。
没看明白为什么“(a,b,c,d)顺序的索引, d 是用不到索引的”,而“如果建立(a,b,d,c)的索引则都可以用到”。不是“遇到范围查询(>、<、 between 、 like)就停止匹配”吗,那为什么第二种方式创建索引 d 就能用到索引?
还有个问题,只有 = 号的时候才会用到索引吗?还有其他操作可以用索引吗?