最左前缀匹配原则,非常重要的原则,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,d,c) 的索引 查询条件是a = 1 and b = 2 and c > 3 and d = 4 的时候 匹配索引的时候,先匹配到a 再匹配到b ,然后c>3 跳过, 再匹配到 d=4嘛 那这个c的索引还需要再回去匹配一次嘛 还是mysql自动优化了这个条件顺序 变成 a = 1 and b = 2 and d = 4 and c > 3 这个样子 匹配的 所以abdc的所以索引都能用到的,这个匹配的过程不是太理解