JAVA经典面试题--B树与B+树

目录

B树

B树的图示

B+树

B+树的图示

B+树的特点:

B+树的优势:


B树

B树,也叫做B-树,(B“-”树,不是B减树,“-”是连接符),是N叉搜索树

当节点的子树多了,节点上保存的key多了,意味着在同样的key的个数前提下,B树的高度要比二叉搜索树低很多。

树的高度越高,进行查询比较的时候访问磁盘的次数就越多。(与二叉搜索树相比,高度降低了)

B树的图示

B+树

在B树的基础上进行改进,节点上有几个key,就引出几个分支

B+树的图示

 

最后B+树会将叶子节点首位相连,构成了一个像链表的结构。

为了数据库索引量身定制的数据结构

B+树的特点:

1.一个节点可以存储N个key,N个key划分出了N个区间(!!不是N+1个区间)

2.每个节点中国的key的值,都会在子节点中也存在(同时该key是子节点的最大值)

3.B+树的叶子节点,是首尾相连的,类似于一个链表

4.由于叶子节点是完整的数据集合,只在叶子节点这里存储数据表的每一行的数据,而非叶子节点只存key值本身即可。

整个树的所有数据都是包含在叶子节点中的。(所有非叶子节点中的key最终都会出现在叶子节点中)

B+树的优势:

1.当前一个节点保存更多的key,最终树的高度是相对更矮的,查询的时候减少了了IO访问次数(和B树是一样的)

2.所有的查询最终都会落到叶子节点上(查询任何数据经过的IO访问次数,是一样的)

3.B+树所有的叶子节点构成链表,比较方便进行范围查询

4.由于数据都在叶子节点上,非叶子节点,只存储key,导致非叶子节点占用的空间是比较小的。这些非叶子节点就可能在内存中缓存(或者缓存一部分),又进一步减少了IO的次数。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西西¥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值