美文网首页
数据库的引擎为什么采用的是B+树而不是B-树

数据库的引擎为什么采用的是B+树而不是B-树

作者: 天蝎scorpion | 来源:发表于2017-06-09 13:42 被阅读0次

关于这个话题是一个老生常谈的问题了,但是有时候好多人总是傻傻搞不明白

首先我们来总结一下b树和B+树的主要区别,关于这两个的基本定义,其实我也说不太明白,毕竟好长时间没有实际做过这些了,但是一些主要的区别我们还是必须要清楚的。
首先B树和B+树,都有节点和指针,也就是书上定义的Ki和Pi,原谅写的不够标准,不怎么熟悉Markdown的语法;下面我们就主要来说说两者的主要区别:
首先来看看B树和B+树的图片,图片来自网络:

B-树.jpeg

B-树的主要特征是Pi比Ki要多一个,另外非叶子结点的指针: P[1], P[2], …, P[M];其中 P[1]指向关键字小于 K[1]的子树, P[M]指向关键字大于 K[M-1]的子树,其它 P[i]指向关键字属于 (K[i-1], K[i])的子树,注意为开区间。

B+树.jpeg

而B+树的主要特征是k的个数等于p的个数,且非叶子结点的子树指针 P[i],指向关键字值属于 [K[i], K[i+1])的子树,注意为闭区间。

根本原因:b树会在各个叶子节点存储数据,而b+树只有在叶子节点会存储数据,在同样高度的树的请开给你下,B+树会存储更多的索引,且查找速度更快。

相关文章

网友评论

      本文标题:数据库的引擎为什么采用的是B+树而不是B-树

      本文链接:https://www.haomeiwen.com/subject/pftfqxtx.html