Clickhouse性能(三)

性能

根据 Yandex 公司的内部测试结果,对于可供测试的同类系统中的可比操作场景,ClickHouse 显示了最佳性能(长查询的吞吐量最高,短查询的延迟最低)。 您可以在单独的页面上查看测试结果。

许多独立的基准也证实了这一点。 使用互联网搜索并不难找到它们,或者你可以看到我们收集的相关链接。

单个大型查询的吞吐量

吞吐量可以用行/秒或兆字节/秒来衡量。如果数据放在内存中,则在现代硬件上以大约2-10 GB/s的速度在单个服务器上处理不太复杂的查询(对于最简单的情况,速度可能达到30 GB/s)。如果数据没有放在内存中,则速度取决于磁盘系统和数据压缩率。例如,如果磁盘系统允许以400 MB/s的速度读取数据,并且数据压缩率为3,则速度大约为1.2 GB/s。若要获得每秒行数的速度,请将每秒字节数的速度除以查询中使用的列的总大小。例如,如果提取10个字节的列,则速度大约为每秒1-2亿行。

对于分布式处理,处理速度几乎呈线性增长,但前提是聚合或排序产生的行数不太大。

处理短查询时的延迟

如果查询使用主键,并且没有选择太多要处理的行(成百上千),并且没有使用太多的列,那么如果将数据放在页缓存中,我们可以预期不到50毫秒的延迟(最好是毫秒的个位数)。否则,将根据查找的次数计算延迟。如果使用旋转驱动器,对于未过载的系统,延迟将通过以下公式计算:

seek time (10 ms) * number of columns queried * number of data parts.
查找时间(10毫秒)* 查询的列数 * 数据的分区数

处理大量短查询时的吞吐量

在相同条件下,ClickHouse可以在一台服务器上每秒处理数百个查询(在最佳情况下最多可以处理数千个)。 由于这种情况对于分析型DBMS来说并不常见,因此我们建议每秒最多100个查询。

插入数据时的性能

我们建议在至少1000行的批量插入数据,或每秒不超过一个请求插入数据。

从制表符分隔的数据插入到MergeTree表时,插入速度将从50 MB/s到200 MB/s。如果插入的行大小约为1 KB,则速度将从每秒50000行到200000行。
如果行数较小,性能将以每秒行数为单位更高(对于Banner数据->500000行/秒;对于Graphite数据->1000000行/秒)。

要提高性能,可以并行执行多个INSERT查询,性能将线性提高。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值