ClickHouse 以速度和可靠性著称,但只有在特定的运行参数范围内才能实现最佳性能。例如,表、 数据库或 parts 过多可能会对性能造成负面影响。为避免这种情况,ClickHouse Cloud 会在多个运行维度设置限制。 下方列出了这些限制的默认值。除非另有说明, 这些限制均适用于服务级别。
| 维度 | 限制 |
|---|---|
| 数据库 | 1000 |
| 表 | 5000 |
| 视图 | 15000 |
| 字典 | 5000 |
| 命名集合 (私有预览) | 1000 |
| 列 | ~1000 (首选宽格式而非紧凑格式) |
| 分区 | 50k |
| Parts | 10k (请参阅 max_parts_in_total 设置) |
| Part 大小 | 150 GB |
| 每个组织的服务数 | 20 (软限制) |
| 每个服务的副本数 | 20 (软限制) |
| 每个仓库的副本数 | 50 (软限制) |
| 低基数 | 10k 或以下 |
| 表中的主键 | 4–5 个,且应能充分筛选数据 |
| 查询并发度 | 1000 (每个副本) |
| 批量摄取 | 超过 100 万行的数据会拆分为每块 100 万行 |
有关仓库副本和扩缩容限制,请参阅仓库。
上述数值为默认限制。特定服务实际执行的限制可能高于此处显示的值,因为较大的服务会配置更多余量。实际适用于您服务的限制会显示在您接近该限制时收到的警告中。对于已超过上述用量限制的服务,表/数据库限制设为该服务当前表/数据库数量加上 25%。
可通过查询 system.server_settings 验证适用于您服务的具体警告和拒绝限制。例如,
SELECT *
FROM system.server_settings
WHERE name IN ('max_table_num_to_warn', 'max_table_num_to_throw', 'max_database_num_to_warn', 'max_database_num_to_throw', 'max_view_num_to_warn', 'max_view_num_to_throw', 'max_dictionary_num_to_warn', 'max_dictionary_num_to_throw', 'max_named_collection_num_to_warn', 'max_named_collection_num_to_throw')