码迷,mamicode.com
首页 > 其他好文 > 详细

复合索引底层实现

时间:2018-09-27 15:29:05      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:实现   select   如何   net   and   topic   tps   前缀   顺序   

比如mysql 单列索引是将该列数据当做关键字构建一颗b+tree,但是组合索引是如何实现的呢?比如两个字段的组合索引,SELECT * FROM TABLE1 WHERE A=22 AND b=33 ; 是要建两棵树吗?如果只建立一颗树,那b列是如何存放的?

 

一棵树  

如果是单列,就按这列数据进行排序

如果是多列,就按多列数据排序,首先根据第一列排序,在第一列一样的情况下,第二列再排序。例如有(1,1) (2,2) (2,1) (1,2)

那在索引中的叶子节点的数据顺序就是(1,1)(1,2)(2,1)(2,2)

这也是为什么查询复合索引的前缀是可以用到索引的原因(最左前缀原则)

 

 

 

https://bbs.csdn.net/topics/390985501

 

复合索引底层实现

标签:实现   select   如何   net   and   topic   tps   前缀   顺序   

原文地址:https://www.cnblogs.com/twoheads/p/9712912.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!