mysql的联合索引的B+树到底张什么样子?

2018-11-30  本文已影响0人  baiyin1115

前天在看mysql相关文章的时候,突然有个疑问,mysql的联合索引的b+树到底张什么样子啊?于是google搜了下,搜索条件是“mysql 联合索引 b+树”,结果引擎返回的第一页的结果大致都跟下面这篇文章差不多。

图片文字大致如下:


image.png

链接可参考:
https://www.cnblogs.com/wuchanming/p/9185661.html

总体的意思是 树的非叶子节点存储的是联合索引中最左面那个字段,在叶子节点存储的是联合索引的key+data域,对于这个说法,我内心是拒绝的。但是作者查询了很多资料,这我就有点纠结了。

我其实没有找到怎么查mysql索引的张什么样子的方法,我是根据以下理由推断文章是错的。

综上,那篇文章应该说的可能又问题。

我的不靠谱的结论如下:非叶子节点存储的也是联合索引key的键值对,并且按照一定的顺序在节点间排队;对于innodb,叶子节点存储的是联合索引key键值对+主键索引;对于MyISAM,叶子节点存储的是联合索引key键值对+data内存地址。

另外,有的博客提到了高性能MySQL(第3版)描述b-tree结构的时候也有所描述,截图如下:

image.png

最后最后,是我的问题太简单吗? 知乎居然给关闭了,mmb。
https://www.zhihu.com/question/304037770/answer/541460420

上一篇下一篇

猜你喜欢

热点阅读