自己实现基于key-value的NoSQL数据库(三)—— B+树和Hash算法

本文探讨了在自实现的基于key-value的NoSQL数据库中,如何利用B+树解决高效查找问题,并介绍了将字符串键转化为数字的Bizzard公司经典哈希算法。为简化学习过程,仅采用算法的部分实现。接下来的章节将展示如何将这两种算法整合到数据库的搜索算法中。
摘要由CSDN通过智能技术生成

前一篇文章中,效率成了很关键的问题,比较数据库还是需要能高效查找数据才行


那么如何解决查找问题呢?一个很好的办法是使用B+树,关于B+树就不做多的介绍了,网上有很多

这里只贴出定义


B-树

       是一种多路搜索树(并不是二叉的):

       1.定义任意非叶子结点最多只有M个儿子;且M>2;

       2.根结点的儿子数为[2, M];

       3.除根结点以外的非叶子结点的儿子数为[M/2, M];

       4.每个结点存放至少M/2-1(取上整)和至多M-1个关键字;(至少2个关键字)

       5.非叶子结点的关键字个数=指向儿子的指针个数-1;

       6.非叶子结点的关键字:K[1], K[2], …, K[M-1];且K[i] < K[i+1];

       7.非叶子结点的指针:P[1], P[2], …, P[M];其中P[1]指向关键字小于K[1]的

子树,P[M]指向关键字大于K[M-1]的子树,其它P[i]指向关键字属于(K[i-1], K[i])的子树;

       8.所有叶子结点位于同一层;

       如:(M=3)


B+树

       B+树是B-树的变体,也是一种多路搜索树:

       1.其定义基本与B-树同&#
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值