联合索引
一、联合索引
1. 概念:包含多个列的索引组成一个联合索引。
2. 联合索引的通俗解释:联合索引的两个字段分别类比成电话薄的姓和名,查找目录会先按照人的姓进行排序,然后按照名进行排序。
3. 添加联合索引示例:
alter table table_name
add index index_name(col_1,col_2,col_n)
4. 联合索引支持的索引顺序(联合索引仅支持and)
select * from table_name where col_1=?
解释:刚好是联合索引的首个索引,可以命中索引(最左前缀原则)
4.2 select * from table_name where col_1 = ? and col_2
解释:刚好是联合索引的前两个索引,可以命中(最左前缀原则)
4.3 select * from table_name where col_1=? and col_2=? and col_3 = ?
解释:是联合索引建立的目的,最大化利用联合索引达到优化查询的目的;
4.4 select * from table name where col_3 = ? and col_2 = ? and col_1 = ?
解释:;查询优化器可以将上述sql优化成4.3一样,可以命中索引
5. 联合索引不知 or 使用or连接各个查询条件无法命中索引
6. 联合索引在b+树中的结构