B树和B+树的区别

1.结构上

  • B树:所有节点都可包含记录。
  • B+树:只有叶子节点存储数据,非叶子节点仅用于索引,不存储实际数据(根节点既可以存数据也可以存索引)。相邻叶子节点间有指针指向。

2.增删不同

B+树还要更新维护索引的变化

3.查询性能不同

  • B树:相当于对关键字二分查找,范围是1~logmN,距离根节点越近效率越高,涉及到跨层查找,所以在查询时可能需要多次磁盘访问,导致查询性能较低。
  • B+树:都是logmN,因为数据都在叶子节点上,而且通过叶子节点形成的链表可以快速定位到范围查询的起始位置,提高了查询性能。此外,B+树非叶子节点不存放数据,相比于B树的非叶子节点来说,所占内存小。磁盘IO的大小是固定的,节点越小,一次IO所能读取到的节点数量就越多。因此B+树单次磁盘IO效率高于B树。

4.使用场景不同

  • B树:适用于需要随机访问的场景,比如文件系统索引。
  • B+树:适用于范围查询和顺序访问的场景,比如数据库索引。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值