2

漫画:什么是B+树?

 3 years ago
source link: https://www.cxyxiaowu.com/3726.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
漫画:什么是B+树?-吴师兄学编程
当前位置:吴师兄学编程 > 算法 > 漫画算法 > 漫画:什么是B+树?

在上一篇漫画中,我们介绍了B-树的原理和应用,没看过的小伙伴们可以点击下面的链接:

漫画:什么是B-树?

这一次我们来介绍B+树。

—————————————————

漫画:什么是B+树?

漫画:什么是B+树?

漫画:什么是B+树?

漫画:什么是B+树?

一个m阶的B树具有如下几个特征:

1.根结点至少有两个子女。

2.每个中间节点都包含k-1个元素和k个孩子,其中 m/2 <= k <= m

3.每一个叶子节点都包含k-1个元素,其中 m/2 <= k <= m

4.所有的叶子结点都位于同一层。

5.每个节点中的元素从小到大排列,节点当中k-1个元素正好是k个孩子包含的元素的值域分划。

漫画:什么是B+树?

一个m阶的B+树具有如下几个特征:

1.有k个子树的中间节点包含有k个元素(B树中是k-1个元素),每个元素不保存数据,只用来索引,所有数据都保存在叶子节点。

2.所有的叶子结点中包含了全部元素的信息,及指向含这些元素记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接。

3.所有的中间节点元素都同时存在于子节点,在子节点元素中是最大(或最小)元素。

漫画:什么是B+树?

漫画:什么是B+树?

漫画:什么是B+树?

漫画:什么是B+树?

漫画:什么是B+树?

漫画:什么是B+树?

漫画:什么是B+树?

漫画:什么是B+树?

漫画:什么是B+树?

漫画:什么是B+树?

漫画:什么是B+树?

漫画:什么是B+树?

漫画:什么是B+树?

漫画:什么是B+树?

B-树中的卫星数据(Satellite Information):

漫画:什么是B+树?

漫画:什么是B+树?

B+树中的卫星数据(Satellite Information):

漫画:什么是B+树?

需要补充的是,在数据库的聚集索引(Clustered Index)中,叶子节点直接包含卫星数据。在非聚集索引(NonClustered Index)中,叶子节点带有指向卫星数据的指针。

漫画:什么是B+树?

漫画:什么是B+树?

漫画:什么是B+树?

第一次磁盘IO:

漫画:什么是B+树?

第二次磁盘IO:

漫画:什么是B+树?

第三次磁盘IO:

漫画:什么是B+树?

漫画:什么是B+树?

漫画:什么是B+树?

漫画:什么是B+树?

漫画:什么是B+树?

漫画:什么是B+树?

漫画:什么是B+树?

B-树的范围查找过程

自顶向下,查找到范围的下限(3):

漫画:什么是B+树?

中序遍历到元素6:

漫画:什么是B+树?

中序遍历到元素8:

漫画:什么是B+树?

中序遍历到元素9:

漫画:什么是B+树?

中序遍历到元素11,遍历结束:

漫画:什么是B+树?

漫画:什么是B+树?

漫画:什么是B+树?

B+树的范围查找过程

自顶向下,查找到范围的下限(3):

漫画:什么是B+树?

通过链表指针,遍历到元素6, 8:

漫画:什么是B+树?

通过链表指针,遍历到元素9, 11,遍历结束:

漫画:什么是B+树?

漫画:什么是B+树?

漫画:什么是B+树?

漫画:什么是B+树?

漫画:什么是B+树?

B+树的特征:

1.有k个子树的中间节点包含有k个元素(B树中是k-1个元素),每个元素不保存数据,只用来索引,所有数据都保存在叶子节点。

2.所有的叶子结点中包含了全部元素的信息,及指向含这些元素记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接。

3.所有的中间节点元素都同时存在于子节点,在子节点元素中是最大(或最小)元素。

B+树的优势:

1.单一节点存储更多的元素,使得查询的IO次数更少。

2.所有查询都要查找到叶子节点,查询性能稳定。

3.所有叶子节点形成有序链表,便于范围查询。

漫画:什么是B+树?

—————END—————

喜欢本文的朋友们,欢迎长按下图关注订阅号梦见,收看更多精彩内容

漫画:什么是B+树?

原文始发于微信公众号(程序员小灰):漫画:什么是B+树?

20210103120620577.jpg
关注公众号「程序员吴师兄」,一起进步!
  • 今天的访问: 106
  • 累计访客: 1,065,323

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK