联合索引
什么是联合索引:即由数据库的两列及以上组成的索引.
最左匹配原则
最左匹配原则举例:
- 前提条件: 我们将
a和b
两列设置为联合索引,且a在前,b在后. - 当我们在where语句中调用
where a= x and b = y(x,y为任意数值)
的时候,它就会走这个联合索引. - 当我们在where语句中调用
where a= x (x为任意数值)
的时候,它也会走这个联合索引. - 但是,当我们在where语句中调用
where b = y (y为任意数值)
的时候,它就不会走这个联合索引,而是去全文搜索.
什么是联合索引的最左匹配原则:
最左匹配原则,又叫最左前缀匹配原则,这是一个非常重要的原则.
1.其定义为: mysql在执行查询语句过程中,对于查询的where条件为联合索引时,它会一直向右匹配直到遇到范围查询(<, >, between, like)
就停止匹配.
比如: 现有一个(a,b,c,d)顺序的联合索引,当查询条件为a=3 and b=4 and c>5 and d=6
时, d是用不到索引的(也就是说这样子就用不到联合索引了),如果建立顺序为(a,b,d,c)的索引