这些设置可在 system.settings 中查看,并由 源代码 自动生成。
max_partitions_per_insert_block
类型
UInt64
默认值
100
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 19.5 | 100 | 为单个块中的分区数量添加限制 |
限制单个插入块中的最大分区数; 如果该块包含过多分区,则会抛出异常。
- 正整数。
0— 分区数量不受限制。
详情
插入数据时,ClickHouse 会计算插入块中的分区数。
如果分区数超过
max_partitions_per_insert_block,ClickHouse 会根据 throw_on_max_partitions_per_insert_block
记录警告日志或抛出异常。异常文本如下:
"单个 INSERT 块中的分区过多 (
partitions_count个分区,限制为 " + toString(max_partitions) + ") 。 此限制由 'max_partitions_per_insert_block' 设置控制。 大量分区是一种常见误区。这会对性能造成严重负面影响, 包括服务器启动缓慢、INSERT 查询变慢 以及 SELECT 查询变慢。对于一张表,建议的分区总数应 保持在 1000..10000 以下。请注意,分区的目的并不是加速 SELECT 查询 (ORDER BY 键已足以让范围查询变快) 。 分区是用于数据操作的 (DROP PARTITION 等) 。"
max_partitions_to_read
类型
Int64
默认值
-1
限制单次查询可访问的最大分区数。
创建表时指定的该设置值可以通过查询级别的设置覆盖。
可能的值:
- 正整数
-1- 不受限制 (默认)