B 树笔记

1、B树的基本概念
我所理解的B树应该是一种适配与计算机存取的一种算法,由于我们现在的大规模存储数据还是在机械硬盘中,其实机械硬盘本身的存储速度并不慢,普通的机械硬盘在7200 r/s左右,也就是完成一个磁盘页的存取只需要9ms左右,加上磁头的移动4ms左右,本身的速度是并不慢的,但是相对于硅本身的存取速度就会显得捉襟见肘了,两者的差距可能在20背左右,所以将数据放到内存中来进行操作显然是十分高效的选择, 所以机械硬盘的存储速度就基本取决于IO存取速度。而B树以及B+树就是在这样的背景下孕育而生的。
我们希望在将硬盘中的数据分块的放到内存中进行查找(数据库最核心的部分也就是查找,所以我们已查找为中心来思考B树的结构),再考虑到树型结构查找的高效性,所以我们考虑到了每次IO存取的数据如果是刚好是磁盘的一个磁盘页,也就是说每次从磁盘中取出一页作为树的一个节点,考虑到要尽可能的减少IO次数,也就是说要尽可能的减少树的高度,所以我们需要一颗平衡的树。
顺着我们的思路走下来B树的结构也就显而易见了:
1、根节点至少有两个字节点
2、每个节点至少有m/2个子节点,最多有m个子节点(考虑到树的平衡)
3、所有的叶子节点都出现在同一层上,也就是最后一层上

ps:每个节点的节点信息都保存在当前节点上(与B+树的一个重要区别),每个节点的节点信息包含节点信息以及指向子节点的指针信息。

2、查找

如同上上面所说的,B树的结构很大一部分就是为了查找而考虑的,所以B树的查找是几个数据操作中最为简单明了的操作。

3、在m阶B树上进行插入

4、B树的删除数据

5、应用方面

6、一些需要知道的概念

一个磁面的读取时间大概为9ms、一页磁面的存储数据量大概为2的10次方个字节(8k左右),就是磁盘读取的最小单位就是一页的容量数。

6、自己的思考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值