联合索引

一、联合索引

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+树中的结构

 

posted @ 2018-09-17 11:12  大熊好好写代码  阅读(539)  评论(0编辑  收藏  举报