中文

一维中的二级索引:超越B树和位图索引

数据库 2008-11-19 v1 数据结构与算法

摘要

设S为有限有序字母表,x = x_1 x_2 ... x_n为S上的字符串。x的“二级索引”回答如下形式的字母范围查询:给定S上的范围[a_l,a_r],返回集合I_{[a_l;a_r]} = {i |x_i \in [a_l; a_r]}。二级索引在关系数据库和科学数据分析中被大量使用。众所周知,明显的解决方案,即为与每个字符关联的位置集存储一个字典,并不总是给出最优的查询时间。在本文中,我们给出了二级索引问题的第一个理论最优数据结构。在I/O模型中,假设内部存储器大小为(|S| log n)^{\delta}个块(对于某个常数delta > 0),回答查询时读取的数据量在表示I_{[a_l;a_r]}所需的最小空间的常数因子范围内。该数据结构的空间使用量在最坏情况下为O(n log |S|)位,我们进一步展示了如何根据x的0阶熵来限制数据结构的大小。我们展示了如何支持更新以实现各种时空权衡。我们还考虑了基本二级索引问题的近似版本,其中查询报告I_{[a_l;a_r]}的一个超集,包含每个不在I_{[a_l;a_r]}中的元素的概率至多为epsilon,其中epsilon > 0是假阳性概率。对于这个问题,查询算法需要读取的数据量减少到O(|I_{[a_l;a_r]}| log(1/epsilon))位。

关键词

引用

@article{arxiv.0811.2904,
  title  = {Secondary Indexing in One Dimension: Beyond B-trees and Bitmap Indexes},
  author = {Rasmus Pagh and S. Srinivasa Rao},
  journal= {arXiv preprint arXiv:0811.2904},
  year   = {2008}
}

备注

16 pages