RICH-ATONE

clickhouse为啥快

ClickHouse在计算层做了⾮常细致的⼯作,竭尽所能榨⼲硬件能⼒,提升查询速度。它实现了单机多核并⾏、分布式计算、向量化执⾏与
SIMD指令、代码⽣成等多种重要技术。

一:列式存储

①首先clickhouse采用列式存储,相对与行式存储,优势有对列的聚合、计数、求和优于行式存储。(行式存储针对某个人的所有属性,一次磁盘查找顺序读取就可以。但是想查询所有人的年龄时,就需要不停的查找)
②由于某一列的数据类型都是相同的,针对存储数据更容易进行压缩
③压缩比更好,一方面节省了磁盘空间,另一方面对于cache也有了更大的发挥空间。

二:向量化执行(引擎),性能好,想对与Doris的优势
充分利用CPU的SIMD指令来处理计算(充分利用CPU和底层操作系统算法相结合),不适合高并发的简单查询。

拓展:SIMD的优势?
基于CPU寄存器层面的操作。 热知识:从寄存器中访问数据的速度是从内存访问数据的300倍,是从磁盘访问数据的3000万倍。

三、多核并⾏
ClickHouse将数据划分为多个partition,每个partition再进⼀步划分为多个index granularity,然后通过多个CPU核⼼分别处理其中的⼀
部分来实现并⾏数据处理。
在这种设计下,单条Query就能利⽤整机所有CPU。极致的并⾏处理能⼒,极⼤的降低了查询延时。

四、分布式计算(MPP架构,olap引擎)
除了优秀的单机并⾏处理能⼒,ClickHouse还提供了可线性拓展的分布式计算能⼒。ClickHouse会⾃动将查询拆解为多个task下发到集群
中,然后进⾏多机并⾏处理,最后把结果汇聚到⼀起。

posted on 2022-06-14 18:16  RICH-ATONE  阅读(682)  评论(0编辑  收藏  举报

导航