Bootstrap

ClickHouse 数据存储形式 及 索引原理

1、列式数据库,对比于行式数据库mysql

查询提升200倍,ClickHouse你值得拥有! - 掘金

2、索引原理,稀疏索引,及查询流程

ClickHouse的索引原理 - 掘金

3、索引原理 

【ClickHouse内核】MergeTree索引相关基础知识点_Night_ZW的博客-CSDN博客

4、补充:一级索引

其实 clickhouse 的一级索引非常简单,只需要记录每一个 block 第一个值即可。例如一组一亿行的数据,主键范围从 1~100,000,000。存储到 clickhouse 后按照 8192 行为一个 block,那么一共有 12208 个 block。索引为 1,8193,16635…… 在查询时只需要就可以根据值确定到需要读取哪几个 block 了。例如我需要查询 id>500 and id <12258 的数据,那就只需要读取第 0 块和第 1 块 block 即可。在 clickhouse 的数据存储文件中,一级索引存在于 primary.idx 中。一级索引的本质是存储了每个 block 中数据的最小值,从而为确定需要查询的数据确定好其所在的 block。它简历了数据到 block 的映射关系。简单来说,给定一个数据,通过一级索引能够快速查询到这个数据所在的 block。从而避免查询一个数据需要遍历整个数据集。(转自 Clickhouse 系列 - 第四章 - 索引 - AddisonChen的个人空间 - OSCHINA - 中文开源技术交流社区

 

;