开源分析数据库ClickHouse以快著称,真的如此吗?我们通过对比测试来验证一下。
先用ClickHouse(简称CH)、Oracle数据库(简称ORA)一起在相同的软硬件环境下做对比测试。测试基准使用国际广泛认可的TPC-H,针对8张表,完成22条SQL语句定义的计算需求(Q1到Q22)。测试采用单机12线程,数据总规模100G。TPC-H对应的SQL都比较长,这里就不详细列出了。
Q1是简单的单表遍历计算分组汇总,对比测试结果如下:
CH计算Q1的表现要好于ORA,说明CH的列式存储做得不错,单表遍历速度很快。而ORA主要吃亏在使用了行式存储,明显要慢得多了。
但是,如果我们加大计算复杂度,CH的表现怎么样呢?继续看TPC-H的Q2、Q3、Q7,测试结果如下:
计算变得复杂之后,CH性能出现了明显的下降。Q2涉及数据量较少,列存作用不大,CH性能和ORA几乎一样。Q3数据量较大,CH占了列存的便宜后超过了ORA。Q7数据也较大,但是计算复杂,CH性能还不如ORA。
做复杂计算快不快,主要看性能优化引擎做的好不好。CH的列存占据了巨大的存储优