联合索引和b+树

一、联合索引

1.  概念:包含多个列的索引组成一个联合索引。

2. 联合索引的通俗解释:联合索引的两个字段分别类比成电话薄的姓和名,查找目录会先按照人的姓进行排序,然后按照名进行排序。

3. 添加联合索引示例:

alter table table_name 
add index index_name(col_1,col_2,col_n)

4. 联合索引支持的索引顺序(联合索引仅支持and)

4.1 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一样,可以命中索引


  

4.1 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一样,可以命中索引

  

猜你喜欢

转载自www.cnblogs.com/ChenXionghfut/p/9661038.html