Roaring Bitmap 就基于这个思路,对低 16 位的位图部分进行了优化:如果一个桶中存储的数据少于 4096 个,我们就不使用位图,而是直接使用 short 型的有序数组存储数据。同时,我们使用可变长数组机制,让数组的初始化长度是 4,随着元素的增加再逐步调整数组长度,上限是 4096。这样一来,存储空间就会低于 8K,也就小于使用位图所占用的存储空间了
来自:特别加餐 | 倒排检索加速(一):工业界如何利用跳表、哈希表、位图进行加速?
5 人划过
跳表用一种更简单的方式实现了检索空间的平衡。并且,由于跳表保持了链表顺序遍历的能力,在需要遍历功能的场景中,跳表会比红黑树用起来更方便。
来自:02 | 非线性结构检索:数据频繁变化的情况下,如何高效检索?
4 人划过
这样我们就能把排序的时间代价降低到 O(n) + O(k log n)(即建堆时间 + 在堆中选择最大的 k 个值的时间),而不是原来的 O(n log n)
来自:11|精准Top K检索:搜索结果是怎么进行打分排序的?
4 人划过
如果这个数据是详细信息的位置指针,那我们还需要再访问磁盘一次,将详细信息读出。
来自:06 | 数据库检索:如何使用B+树对海量磁盘数据建立索引?
3 人划过
检索技术:它是更底层的通用技术,它研究的是如何将我们所需的数据高效地取出来。
来自:开篇词 | 学会检索,快人一步!
3 人划过
在多路归并生成第 n 层的 SSTable 文件时,LevelDB 会判断生成的 SSTable 和第 n+1 层的重合覆盖度,如果重合覆盖度超过了 10 个文件,就结束这个 SSTable 的生成,继续生成下一个 SSTable 文件
来自:17 | 存储系统:从检索技术角度剖析LevelDB的架构设计思想
3 人划过
当索引拆分以后,每台服务器上加载的数据都会比全量数据少,那每台服务器上的单次查询所消耗的时间也就随之减少了。
来自:10 | 索引拆分:大规模检索系统如何使用分布式技术加速检索?
3 人划过
以认为“位图是只有一个特殊的哈希函数,且没有被压缩长度的布隆过滤器
来自:04 | 状态检索:如何快速判断一个用户是否存在?
3 人划过
在 A 和 B 这两个链表中查找出公共元素呢
来自:05 | 倒排索引:如何从海量数据中查询同时带有“极”和“客”的唐诗?
3 人划过
*精彩内容为该课程各文章中划线次数最多的内容
编辑推荐
包含这门课的学习路径
后端工程师
27门课程 184.1w人学习
看过的人还看了