复合索引底层实现

Posted twoheads

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了复合索引底层实现相关的知识,希望对你有一定的参考价值。

比如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

 









以上是关于复合索引底层实现的主要内容,如果未能解决你的问题,请参考以下文章

361一文掌握联合索引

Pandas中xs()函数索引复合索引数据的不同切面数据(索引复合索引中需要的数据):索引列复合索引中的一个切面索引行复合索引中的一个切面

鉴于新的索引交集功能,复合索引何时在 MongoDB 2.6 中仍然相关?

如何定义复合和哈希 mongodb 索引?

关于MySQL复合索引的使用方法有哪些?

pandas构建复合索引数据(multiple index dataframe)pandas索引复合索引dataframe数据