因为有打算从ck切换到doris,所以在相同的服务器环境,分别建了一套clickhouse和doris.但是在测试过程中,简单的sql,group by+count,两边的查询效率相差的4-5倍,最后查看磁盘io,在相同数据量相同的sql下,发现ck的磁盘io只有doris的四分之一,五分之一。我的测试环境都是hhd.doris和ck都是默认压缩比。doris目前测出的查询效率,有点不敢换了,这是为啥呢
因为有打算从ck切换到doris,所以在相同的服务器环境,分别建了一套clickhouse和doris.但是在测试过程中,简单的sql,group by+count,两边的查询效率相差的4-5倍,最后查看磁盘io,在相同数据量相同的sql下,发现ck的磁盘io只有doris的四分之一,五分之一。我的测试环境都是hhd.doris和ck都是默认压缩比。doris目前测出的查询效率,有点不敢换了,这是为啥呢
CK 默认用 MergeTree 引擎,数据按ORDER BY列物理排序,group by的字段若为ORDER BY列,相同分组的数据会集中存储,HDD 可通过顺序 IO批量扫描,IO 效率极高;
Doris 默认是分桶 + 排序键(前缀索引),若你的group by字段未设为排序键,或分桶设计不合理,会导致扫描时出现大量随机 IO(HDD 的致命短板),IO 量自然飙升。
可以考虑优化下doris的建表