1. 最左前缀匹配原则
这是非常重要、非常重要、非常重要(重要的事情说三遍)的原则,MySQL会一直向右匹配直到遇到范围查询(>,<,BETWEEN,LIKE
)就停止匹配。
但是注意一点,遇到的这个范围匹配本身是会被匹配到的!
即:
如有索引
(a, b, c, d)
,查询条件c > 3 and b = 2 and a = 1 and d < 4
与a = 1 and c > 3 and b = 2 and d < 4
等顺序都是可以的,MySQL会自动优化为a = 1 and b = 2 and c > 3 and d < 4
,依次命中a、b、c
。
注意,c
是可以命中索引的!只是c
之后的无法匹配
很简单,可以试试select * from user where id>10
。看id有没有使用索引就知道了。
网友评论