MergeTree的稀疏索引
- 数据按照主键排序后存储的
- 每个索引记录对应8192条(由index——grandularity指定) 记录索引是常驻内存的。
索引的生成过程
索引由Primary Key指定。索引数据保存在primary.idx文件中。
这里假设索引力度(index_grandularity)为3,即每3条数据生成一条索引记录。
索引的查询
前后相邻的两个索引的值,构成索引的范围
根据主键的查询条件,确定索引范围。
- id in (‘A02’,‘A08’),转化为索引范围区间[A01,A04] 和 [A07,A10],对应索引标记0和2中查询数据。
- id = ‘A04’ , 在索引范围[A01,A04]和[A04,A07]区间查询数据,对应索引标记0和1.
- id > ‘A11’ 在索引范围[A10,+inf] 区间查询数据,对应所有值大于3的索引标记。
- id like ‘A0%’,在索引范围[A01,A04]、[A04,A07]和[A07,A10]区间查询数据,对应索引标记为0,1和2。