![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 74
AAAAAgnes
这个作者很懒,什么都没留下…
展开
-
布隆过滤器(Bloom Filter)
leveldb在做查询时使用了布隆过滤器,当发现目标key在某个SSTable的键值范围内时,利用布隆过滤器快速判断该key是否存在于此SSTable内,以此减少未命中时情况下的IO消耗。布隆过滤器的基本原理:一个空的布隆过滤器是一个m位的位数组,所有位的值都为0。定义了k个不同的符合均匀随机分布的哈希函数,每个函数把集合元素映射到位数组的m位中的某一位,并将该位置1.当查询一个元素时,通原创 2017-10-08 20:56:39 · 774 阅读 · 0 评论 -
跳表(Skiplist)
学习levelDB时,其Memtable使用到了Skiplist数据结构,在mongodb的存储引擎WiredTiger中的内存存储结构中也有使用。跳表(skip List)是一种随机化的数据结构,基于并联的链表,实现简单,插入、删除、查找的复杂度均为O(logn),高度为O(logn)的概率较高,所需存储空间为O(n)。复杂度分析如下:原创 2017-10-02 21:23:46 · 643 阅读 · 1 评论 -
存储引擎中索引使用b+树,b树,skiplist结构的对比
存储引擎中索引使用b+树,b树,skiplist结构的对比b+树:1.b+树的内部节点没有存储指向关键字具体内容的指针,因此其内部节点相对于b树更小。这就意味着在磁盘存储中,一个块可以容纳更多索引项,查询数据时可有效减少磁盘IO2.查询效率更加稳定,所有数据的查找均是从根节点到叶子节点3.叶子节点之间通过指针来连接,范围扫描将十分简单b树:1.对于在内部节点的数据,可直接得到,不需要根据叶子节点来...原创 2018-02-27 16:55:51 · 3517 阅读 · 0 评论