Clickhouse的特点
一.行存储与列存储的对比区别:
1.在大量的分析场景中,往往只需要读取固定的几列数据,行存储时,很多的列都会存在一个block中,往往不需要被读取的数据也会被全部读取,浪费了大量的io,而列存储中,只需要读取对应的列即可,减少了很多io
2.同一列中的数据,都属于同一类型,压缩效果显著,节省了大量的存储空间
3.更高的压缩比就会有更小的data size 从磁盘中读取耗时更短
4.高压缩比意味着,等同的内存能够cache更多的数据
5.可以针对不同列的数据类型选择不同的压缩算法
二.clickhouse快的特点
1.c语言编写:指针操作内存更快
2.不基于hadoop:轻量级的DBMS
3.MPP架构和列式存储:多主架构,内部核心模块分工明确(后面会有详细的源码解读)
4.向量化执行引擎:消除程序循环的优化,减少节点调度,提升cpu的利用率,
5.多样化的表引擎:面对不同的需求场景,能选择最优的表引擎
6.ch数据是有序存储的,ch支持建表时 制定将某些列进行sort by
排序后保证了相同的sort key的数据在磁盘是连续存储的,这样再进行等值查询和范围where筛选的时候大大减少了读取block的数量减少了大量的io 效率更加快速
7.排序后保证了相同的sort key的数据在磁盘是连续存储的,这样再进行等值查询和范围where筛选的时候大大减少了读取block的数量减少了大量的io 效率更加快速