树——B树(B-树),B+树

什么是B树?

对于数据库来说,我们要求查询有较高的效率。实际应用中,数据库往往采用B树(B-tree)格式储存数据。

B-Tree称为平衡多路搜索树,基于二叉搜索树,采用多叉树,再使用平衡二叉树的思想

了解B树之前,要了解什么是二分搜索树
二分搜索树的内容可以参考另一篇博文:
http://t.csdn.cn/kc9aD

二分搜索树的查找有以下特点:
在n个节点中找到目标值,一般只需要log(n)次比较

对于数据库来说,每进入一层,就要从硬盘读取一次数据,因为硬盘的读取时间远远大于数据处理时间,数据库读取硬盘的次数越少越好。

B树是对二叉查找树的改进。它的设计思想是,将相关数据尽量集中在一起,以便一次读取多个数据,减少硬盘操作次数。

B树(B-树)

B-树有如下特点:
1.有一个根节点,根节点只有两个孩子,根节点的值为一个记录
2.所有的叶子结点在同一层
3.每个结点的值为数据库里的键(key),线为指针,叶子结点的指针为null
在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/7ed8e7cc0aef4876a7f8ad8d0e3c67d5.png

B+树

B+树是B-树的变种
MySQL普遍使用B+树的数据结构
B+Tree与B-Tree的不同点在于:
(1)B+Tree非叶子节点指针数量与它的key的数量相同。
(2)B+Tree非叶子节点只存储key,不存储data,叶子节点不存储指针。
在这里插入图片描述

B+Tree B-Tree的查询区别

B-Tree:
B-树需要单行查询到3,再中序遍历到11
在这里插入图片描述
B+Tree:
B+树只要自顶向下找到3,然后通过链表指针,向右遍历到11即可。
在这里插入图片描述

总结:

数据库使用的是B+Tree的存储结构

使用B+Tree的存储结构是为了提高查询效率,相对于AVL树来说,在数据相同的情况下,使用B+Tree数据结构的方式减少了层数,这样,在查询的时候,大大提高了效率

B-Tree和B+Tree的区别在于B-树的所有结点都包含卫星数据(卫星数据,指的是索引元素所指向的数据记录,比如数据库中的某一行),而B+Tree只是叶子结点包含卫星数据,叶子结点不包含指针,中间的结点是指针

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值