数据库中的B树和B+树

本文详细介绍了B树和B+树这两种多级索引的数据结构,解释了它们如何帮助提高数据库索引的效率,并对比了两者之间的主要区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

B树与B+树

数据库中建立索引能加快数据的存取,但是当索引变得很大时,可能导致内存装不下。这时就需要使用多级索引来实现。而B树和B+树是实现多级索引的一种数据结构。

11

B树

B树是多叉树,其树中每个节点如下所示:

11

Ki是索引字段值,Pj只指针,指向索引块或者指向主文件中的数据块或者指向数据块中的某个记录
Pi指向的内容中的关键字都要小于Ki,Pi+1指向的内容中的关键字都大于等于Ki

特性:

  • 树中每个节点至多有m棵子树(m为树的阶)
  • 若根节点不是终端节点,至少有两棵子树
  • 除根节点外所有的非叶节点至少有m/2(取上限)棵子树

11

B+树

特性:

  • 树中每个节点至多有m棵子树(m为树的阶)
  • 若根节点不是终端节点,至少有两棵子树
  • 除根节点外所有的非叶节点至少有m/2(取上限)棵子树
  • 节点中关键字的个数与子树个数相等
  • 所有的叶节点包含全部关键字以及指向记录的指针(简单理解是叶子节点包含了主文件的全部索引,我们可以直接通过叶子节点来查找主文件的记录),叶子节点中的关键字是从大到小进行排序的,叶子和叶子之间是相互连接的。

11

B树和B+树区别

B树中节点有m个关键字,则有m+1棵子树,而B+树中节点有m个关键字,则有m个子树(每个关键字对应一棵子树,子树中的关键字小于等于父节点中那个关键字的)
B+树中叶节点包含了所有的信息,而非叶节点只是在索引上建立索引,所以B+树中非叶节点不指向记录且索引字段值可以重复出现。B树中每个节点可以是具体的记录或者是一个索引块,且要求树中的每个索引字段值只能出现一次。

转载于:https://www.cnblogs.com/xidongyu/p/6538590.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值