【发布时间】:2017-11-06 17:54:27
【问题描述】:
我在 ClickHouse 中创建了一个分布式表,总共有两个分片和一个数据副本。
SELECT *
FROM system.clusters
┌─cluster──────────────┬─shard_num─┬─shard_weight─┬─replica_num─┬─host_name────┬─host_address─┬─port─┬─is_local─┬─user────┬─default_database─┐
│ twoshardsonereplicas │ 1 │ 1 │ 1 │ 192.168.8.70 │ 192.168.8.70 │ 9000 │ 0 │ default │ │
│ twoshardsonereplicas │ 2 │ 1 │ 1 │ 192.168.8.71 │ 192.168.8.71 │ 9000 │ 1 │ default │ │
└──────────────────────┴───────────┴──────────────┴─────────────┴──────────────┴──────────────┴──────┴──────────┴─────────┴──────────────────┘
我有表 exit 和 exit_all 这是分布式表。我插入到表 exit_all 中,它将数据均匀地分布在我的两台服务器上。当我从本地出口表查询一半的记录时,它需要 0.15 秒,但在 exit_all 上执行时需要 0.45 秒。由于处理被拆分,我希望它花费大约相同的时间。
当我计算我的查询时,我可以看到数据被完美地分割为这个查询或在 100k 上的 100 条记录中,所以并不是所有数据都位于一台服务器上。
编辑:每 2-3 次查询的查询时间也会有很大差异,对于某些查询,同一查询的查询时间会从 1.3 秒下降到 750 毫秒。
【问题讨论】:
标签: sql clickhouse