https://mp.weixin.qq.com/s/QGepgMbHQ8JeRxVQwAwsxQ

漫画算法:什么是 B+ 树?

2017-07-14 程序员的那些事

(点击上方公众号,可快速关注)

来源:伯乐专栏作者/玻璃猫,微信公众号 - 梦见(dreamsee321)

如有好文章投稿,请点击 → 这里了解详情

之前已介绍了 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个孩子包含的元素的值域分划。

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

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

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

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

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

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

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

第一次磁盘IO:

第二次磁盘IO:

第三次磁盘IO:

B-树的范围查找过程

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

中序遍历到元素6:

中序遍历到元素8:

中序遍历到元素9:

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

B+树的范围查找过程

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

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

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

B+树的特征:

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

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

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

B+树的优势:

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

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

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

漫画算法系列

  • 漫画算法:最小栈的实现

  • 漫画算法:判断 2 的乘方

  • 漫画算法:找出缺失的整数

  • 漫画算法:辗转相除法是什么鬼?

  • 漫画算法:什么是动态规划?(整合版)

  • 漫画算法:什么是跳跃表?

  • 漫画算法:什么是 B 树?

觉得本文有帮助?请分享给更多人

关注「算法爱好者」,修炼编程内功

漫画算法:什么是 B+ 树?相关推荐

  1. 《漫画算法》终于出电子书了!

    今年5月,小灰出版了<漫画算法>这本纸质书. 在今年年中,本书获得[京东科技新书畅销榜]第1名,[京东科技畅销榜]第4名,非常感谢大家的支持! 但是有一点美中不足,小灰的这本<漫画算 ...

  2. 《漫画算法》读书笔记

    <漫画算法>读书笔记 在图书馆借阅算法书时,看到了一本非常吸引我的算法书--<漫画算法>.算法还能以漫画的方式展示出来吗?我带着我的疑惑翻开了这本书,里面的语言非常接地气,通俗 ...

  3. 漫画算法python篇_漫画算法:小灰的算法之旅(Python篇)(全彩)

    商品参数 漫画算法-小灰的算法之旅(Python篇) 定价 79.00 出版社 电子工业出版社 版次 出版时间 2020年03月 开本 16开 作者 魏梦舒 装帧 平装-胶订 页数 字数 ISBN编码 ...

  4. 《漫画算法》读书心得笔记-未完

    感谢FunTester送的书籍.建议大家买或借来看看,一起学习下.本文主要是记录我看这本书的心得,不一定理解是对的,是我自己悟出来的体会,而不是按书照抄,都是凭自己的理解写出来的,相当于在写一本书了, ...

  5. 程序员小灰的漫画算法和知识总结,高品质强推!!!

    转载自微信号程序员小灰,不定期更新,漫画讲解好评,特来转载. 漫画知识汇总 漫画:深度优先遍历 和 广度优先遍历 漫画:什么是 "图"?(修订版) 漫画:图的 "最短路径 ...

  6. 程序员小灰的漫画算法

    算法 漫画:什么是ConcurrentHashMap? 漫画:高并发下的HashMap 漫画:什么是HashMap? 漫画:什么是红黑树? 什么是AES算法?(整合版) 漫画:什么是SHA系列算法? ...

  7. 常用查找算法之B/B+树

    文章目录 前言 B- 树 查找 插入 删除 B+ 树 查找 范围查找 总结 参考资料 前言 从算法逻辑上讲二叉查找树的查找和插入操作效率都已经很高,但是在实际应用中由于我们不能将整个索引表加载到内存, ...

  8. 包邮赠书 |《漫画算法2》2021全新进阶版来袭!

    那一年,它一上市便夺得2019京东科技新书销量榜 TOP 1 ! 那一年,它在经历了2w+读者参评后收获近 99%的好评 ! 那一年,它登上双十一期间的 公交站广告牌 大放异彩! 那一年,它以豆瓣开局 ...

  9. 【读书笔记】《漫画算法》:克服对算法的恐惧,从漫画开始

    写在开头 在上小学和初高中的时候,要我写读后感这种东西,我是非常厌恶的.无非就是老师布置的一个作业,还是那种无趣且磨人的工作. 结果十多年过去了,到了工作的年纪,看书反倒是自觉地写起读后感来了,而且居 ...

最新文章

  1. 推荐8个令人骄傲的国产软件,改变你对国产的认知
  2. Android -- Camera聚焦流程
  3. python tkinter计算器实例_python小实例——tkinter实战(计算器)
  4. Network 之五 TCP/IP 协议族、工作流程、常用协议格式
  5. 微信:禁用小程序跳转 App;华为商城上架 PlayStation 5;币安涉及洗钱被美监管调查
  6. 39 FI配置-财务会计-固定资产-组织结构-定义号码范围间隔
  7. 用户代码未处理nullreferenceexception_CSAPP 第九章整理 未完成
  8. 【ShaderToy】跳动的心
  9. 入侵检测规则匹配算法--单模匹配算法、多模匹配算法、hyperscan
  10. Linux使用SIGALARM信号的定时器
  11. 计算机与体育教育的关系,试论现代信息技术与体育教育的关系论文.doc
  12. 版本差异_终极版!三星Note20系列在真机再曝光,不同版本差异在这几点
  13. 三极管放大电路原理-电子技术方案
  14. 前端h5 打开pdf文件
  15. 运营实操:亚马逊运营的顶级思维
  16. 微信网页版如何给公众号发消息
  17. 四年级计算机课的检讨,四年级下册信息技术教学反思.doc
  18. iPhone 导入照片显示时间不是拍摄时间
  19. 能力素质有所欠缺_学有所思,思有所悟,悟有所行
  20. Unity之Failed to import package with error: Couldn‘t decompress package

热门文章

  1. 生物信息学|DeepPurpose:药物靶标相互作用预测的深度学习库
  2. 李建忠:我的互联网信仰
  3. 微信搞笑图片带文字,糗事搞笑图片
  4. Spring Cloud介绍
  5. 人脸识别开源图片集(刘德华和吴彦祖)
  6. 计算机培训教师的培训计划,教师计算机培训工作计划
  7. 新版Ui任务程序全开源码
  8. 以用户需求为设计理念,优信二手车APP性能再提升
  9. jq插件调用常见错误处理
  10. 关于新版NZT7/8的安装方法和更新说明