1.clickhouse是一个列式存储的数据库,每一列数据都经过了lz4的压缩,由于列数据之间重复性极高,所以拥有非常可观的压缩比,这样查询一列数据时,扫描速度极快
2.cpu指令层面的优化,大量使用了向量化的操作的指令,也就是SIMD指令(单指令多数据),并且非常善于利用cpu的L1,L2,L3缓存,尽量减少读取内存或者磁盘的操作.
3.不同的场景使用不同的算法或者数据结构,比如数据量较小时就是用array数组存储,数据中等大小时就用hashset结构存储,数据量庞大时使用hyperloglog结构存储
4.不同的表引擎,包括合并树表引擎,聚合合并树表引擎,内存表引擎等等,不同的应用场景可以使用不同的表引擎提高性能.
5.内部高性能算法的使用,比如字符串查找的算法选择,clickhouse会去选择速度最快的算法.
ps: clickhouse毕竟是一个olap数据库,对于这些数据库来说,聚合查询的性能是最首要的.