什么是联合索引?
概念
包含两列或更多列以上的索引,称为联合索引;同时又被称为复合索引。
结构图
匹配规则
1、联合索引结构上的叶子节点包含了多个索引列。
如上图中所示包含:年龄(age)
、姓(firstname)
、名(lastname)
。
2、在联合索引匹配过程中,首先会将联合索引中的第一个索引条件和节点中的第一个索引列进行匹配。
如果匹配成功,那么接着匹配第二个索引条件和第二个索引列。依次类推,直到所有的索引条件都完成匹配。
假设 SQL
语句如下:
select * from user where age = 12 and firstname like '%李';
开始匹配第一个索引条件 age
,如果搜索到 age = 15
这个索引值时,就进行下一个索引条件 firstname
的匹配,当搜索到 firstname = 王安
这个索引值时,已经不满足索引条件了,并且没有了第三个索引条件,至此索引匹配就结束了。
总结
本文主要是介绍了联合索引的定义,以及联合索引的存储结构。还通过举例,来说明联合索引的具体匹配规则。
在我们实际编写 SQL
语句的过程中,可能会出现某一个索引条件和节点中的索引列位置不一致的情况。如果出现
这一种情况,那么只会匹配部分的索引列,就提前结束索引的匹配了。我们将会在下一篇文章中介绍联合索引的 "最左匹配原则"。