我在 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 毫秒。