B树和B+树的区别

因为我们要考虑磁盘IO的影响,它相对于内存来说是很慢的。数据库索引是存储在磁盘上的,当数据量大时,就不能把整个索引全部加载到内存了,只能逐一加载每一个磁盘页(对应索引树的节点)。所以我们要减少IO次数,对于树来说,IO次数就是树的高度,而“矮胖”就是b树的特征之一,它的每个节点最多包含m个孩子,m称为b树的阶,m的大小取决于磁盘页的大小

B树

另一个名字就是二叉树索引。
1.每个节点的儿子节点都是两个,左边是比该节点小的,右边是比该节点大的,这两个索引的儿子节点同样是这种情况
2.所有的节点都是一个关键字

搜索的时候是从根节点开始搜索的。
比如搜索的是35,则直接命中。如果搜索“28“,那就是比35小,左边节点,“17”,“28”比“17”大,则右边节点,直到命中

B+树

我们把所有的数据进行折半块查找,比如一共100条数据。在30和60的地方分一下,存放30和60的节点就是根节点。30和60就是该节点的关键字,100也就是分成了3份,这个节点自动创建三个指针。这三份就是根节点的子节点,(敲黑板划重点,子节点的个数=关键字个数+1,没有子节点就不说了)。下面继续分,拿其中一个子节点举例,把30分成3分,10和20当成关键字,下面继续是三个子节点。。。依次类推

在每一个叶子节点做一个标记,把这些标记存起来,每次查的时候可以在查询根节点的时候从叶子节点也开始查,这样是不是就省了好多时间呢。
而这些标记就是链指针。把这些链指针存进一张表中,这个表就是稠密索引.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值