当前位置: 首页 > article >正文

B+树(B树的改进)

目录

一、什么是B+树?

二、B+树的性质

1.B+树被广泛作为数据库索引的索引结构

2.m个分支的结点有m个元素

3.每个元素对应子结点最大值

4.多级索引结构

5.叶子结点层包含所有元素

三、B树和B+树的区别

四、B+树的查找

1.顺序查找

2.随机查找

3.范围查找


 

一、什么是B+树?

B+树是一种改进自B树的数据结构,它可以在数据文件中快速地查找数据,也可以通过多级索引结构加速查询速度。

B+树的每个叶子节点都包含关键字和对应的记录指针,而非叶子节点则用于快速定位关键字。

B+树可以进行顺序查找随机查找,同时还可以结合两者进行范围查找。它是一种常用于数据库索引的数据结构。

二、B+树的性质

1.B+树被广泛作为数据库索引的索引结构

2.m个分支的结点有m个元素

3.每个元素对应子结点最大值

4.多级索引结构

只有叶子结点的关键字才存储着指向数据记录的指针,

叶子结点的上一层非叶子结点是对叶子结点的索引,

上次层是对下一层的索引。

5.叶子结点层包含所有元素

三、B树和B+树的区别

B树所有结点的关键字都有直接指向对应记录的指针

B+树叶结点包含全部关键字及指向相应记录的指针,非叶结点只作索引

B树中m个分支有m-1个关键字

B+树中m个分支有m个关键字

B树顺序查找或范围查找只能中序遍历,效率低

B+树兼顾顺序查找和随机查找,还可方便地进行范围查找

四、B+树的查找

1.顺序查找

由于叶子结点层包含所有B+树的所有元素,并且用链表链接在一起,所以直接可以从叶子结点的链表头Head开始顺序查找。

2.随机查找

①先从root指针找到根结点和根节点的元素进行比较,比某元素小走某元素的子树,若大于继续向右进行比较;

②如果找到对应元素时不是叶子结点,该关键字没有存储记录的指针,还要继续上述步骤往下走,直到找到叶子结点。

意思说,B+树的查找最后一定会落到叶子结点

3.范围查找

根据随机查找的方式找到范围在叶子结点层链表的起点,接着在列表中往后顺序查找。


http://www.kler.cn/news/368285.html

相关文章:

  • Python实现摇号系统
  • 什么是 VolTE 中的 Slient Redial?它和 CSFB 什么关系?
  • 图集短视频去水印云函数开发实践——小红书
  • 对角线遍历矩阵模板
  • 开源竞争-1024程序员开幕式(湖南)
  • 学习笔记:黑马程序员JavaWeb开发教程(2024.10.26)
  • (九)Proteus仿真STM32单片机硬件I2C和模拟I2C读写PCF8563时钟
  • 【路径跟踪控制:Pure Pursuit控制与车辆运动学模型】
  • Web应用框架-Django应用基础(3)-Jinja2
  • HTML 基础:构建网页结构的基石
  • Java中的反射(3)——反射的应用场景
  • 微信小程序的日期区间选择组件的封装和使用
  • 重学SpringBoot3-Spring WebFlux之SSE服务器发送事件
  • 【jellyfin】解决Edge 浏览器播放 jellyfin 的 hevc/h265 视频“该客户端与媒体不兼容,服务器未发送兼容的媒体格式”错误
  • Vue.js 把字典类型的数据转化为键值对数据,符合echart格式,key-value键值对
  • 微信小程序瀑布流实现,瀑布流长度不均等解决方法
  • 【AI辅助】AWS Toolkit+AmazonQ
  • Python条形图 | 指标(特征)重要性图的绘制
  • 提示工程(Prompt Engineering)指南(入门篇)
  • django中的类属性和类方法
  • A股未来的发展方向在哪里?
  • Web3应用场景大揭秘:区块链技术的创新与突破
  • 云原生Istio基础
  • 检索增强型生成模型RichRAG:为多面查询提供丰富回应
  • XQT_UI 组件|02| 按钮 XPushButton
  • 软硬件开发面试问题大汇总篇——针对非常规八股问题的提问与应答