B树和B+树的主要区别(简略)

本文详细对比了B树与B+树的结构特点、关键字分布规律、节点信息存储方式及磁盘读取效率等关键特性,并阐述了两者在实际应用场景中的优劣。

1.

        m阶B树 --- 节点中的n个关键字对应n+1颗子树

        m阶B+树 --- 节点中的n个关键字对应n颗子树

2.

        m阶B树:

                a:  根节点的关键字数 1<=n <=m-1

                b:  其他节点关键字数 [\left \lceil m/2 \right \rceil-1,m-1 ]

        m阶B+树:

                     a:  根节点的关键字数 1<=n <=m

                     b:  其他节点关键字数 [\left \lceil m/2 \right \rceil,m ]

3.

        在B+树中,叶子节点包含全部关键字,非叶子节点中出现过的关键字也会出现在叶=叶子节点中。

        在B树中,各节点中包含的关键字是不重复的。

4.

        在B+树中,叶子节点包含信息,所有的非叶子仅起索引作用,像是分块查找,非叶子节点中每个索引项只含有对应子树的最大关键字和指向该子树的指针,不含有该关键字对应记录的存储地址。

        B树中的节点都包含了关键字对应的记录的存储地址。

5.本质区别

        在B+树中,每查找一层节点时,都需要进行读磁盘的操作,直到找到叶子节点。

        在B+树中,非叶子节点不含有该关键字所对应记录的存储地址。可以使得一个磁盘块包含更多个关键字,使得B+树的阶更大,树高更矮,读磁盘次数更少,

        在B树中,每次查找都要进行读磁盘操作。因此树的高度越低查找越快。

典型应用,关系型数据库的索引,如MySQL,索引功能就是用B+树实现的。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值