昨天在面试中被问到“联合索引节点结构”这个问题,当时没有答出来,今天在网上查了下各家的答案。发现不少答案存在问题。评论中争论最多的点就是非叶子节点是只包括最左索引字段还是所有索引字段,经过一些资料查找,最终确认非叶子节点中存的是所有索引字段信息。
一些认为非叶子节点是只包括最左索引字段的文章
https://blog.csdn.net/zgjdzwhy/article/details/84062105
https://blog.csdn.net/weixin_30531261/article/details/79329722
ps:贴出来没有任何恶意,只是探讨技术问题。
查证非叶子节点结构
资料一:在上面链接的博客评论中找到的
上图为https://pdfs.semanticscholar.org/0d7b/8b9172a69fa069c9c38b5f01bd37a498563c.pdf 第7页的图
首先,文中指出再非叶子节点中,存了所有索引字段的信息,然后根据字典序,(从左向右权重依次降低,最左匹配原则,可以理解为数字比较大小时,十位与个位的关系,对应于索引字段中第一个与第二个字段,更多字段索引可类推。只有前一个字段为等值时,后续字段索引才有意义。)
资料二: