B-树、B+树、B*树

B-树

B-树就是B树,普通节点也存数据

在这里插入图片描述

特点

​ 1. 根结点的儿子数为[2, M]

​ 2. 除根结点以外的非叶子结点的儿子数为[M/2, M]

​ 3. 每个结点存放至少M/2-1(取上整)和至多M-1个关键字(至少2个关键字)

​ 4. 非叶子结点的关键字个数=指向儿子的指针个数-1

​ 5. 所有叶子结点位于同一层

B+树

只有叶子节点才存数据,非叶节点只存储关键字,非叶子节点所能保存的关键字大大增加,树的高度降低,磁盘IO次数减少

应用:mysql索引的一种(聚簇和非聚簇索引)

特点

​ 1. 非叶子结点的子树指针与关键字个数相同

​ 2. 为所有叶子结点增加一个链指针,有利于数据库做全表扫描

B*树

B+树的变体,非叶子节点和根节点之间也加入了指向兄弟节点的指向

在这里插入图片描述

特点

​ 1. 在B+树基础上,为非叶子结点也增加链表指针

​ 2. B+树初始化的关键字初始化个数是cei(m/2),b树的初始化个数为(cei(2/3m),将结点的最低利用率从1/2提高到2/3

B树和B+树谁更快?

  1. 如果可以一次性将数据全部加载内存中的话,则B树比B+树稍微快一点点(因为当从根节点往下走的时候有可能直接拿到值)

  2. 如果需要将数据多次加载到内存的话,则B+树的优势就体现出来了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值