文件/数据库索引原理(B-/B+树)

急于了解文件/数据库的索引原理,本文不具有真正的参考价值,只是从一个懒人的角度速成原理。但是跳过了对B-和B+树的严格定义。(因短暂记忆,容易失忆,一星期之后再来回顾。)

现讲结果:  文件/数据库索引用的是B+树

1.        二叉查找树:左节点比根节点小,右节点比根节点大,(原理是类似二分法,具体根据树的子节点),对该二叉树的结构没             有限制。        缺点:有特殊情况,和链表一样时间复杂度为O(n).

 2.       二叉平衡树:   规定每个节点的左右,节点的高度差的绝对值不得超过1,避免了上面二叉查找树的极端情况,其原理也是二            分查找,但是限制了该二叉树为完全二叉树(只是便于理解,其实不是完全二叉树,因为完全二叉树有左右子节点的高度差不超过1这个特点)。对于非平衡二叉树,可以通过左旋和右旋的方式转化为平衡二叉树。具体详情可查看https://zhuanlan.zhihu.com/p/56066942,这里有详细的左旋和右旋解析。

3.          B(B-/多路平衡查找树)树:B树的概念我就不放了,可以去找课本查看,我需要的是它与二叉平衡树的对比之后的优点,我只知道其一个子树上可以存放多个节点,比较:相同节点数的B树和二叉平衡树,B树的高度更低,相对而言,同一高度下进行比较的次数多于二叉平衡树。重点:同一高度下子树的比较的场所是在内存,不同高度的寻找就牵涉到了磁盘的寻址加载,因磁盘的寻址加载所用时间远远大于内存中比较所用时间。相对而言,树的高度越低,所耗的时间会越少。本质:减少IO次数,树的高度。

4.          B+树:B+树相对于B树而言,b+树的中间节点不保存数据;其与B树本质不同是在于,B+树上存储数据的是叶子节点,根节点到叶子节点之间的子树存储的全部是索引。而B树的每个子树上存储的是数据。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值