Skip to main content
这些设置可在 system.settings 中查看,并由 源代码 自动生成。

max_partitions_per_insert_block

限制单个插入块中的最大分区数; 如果该块包含过多分区,则会抛出异常。
  • 正整数。
  • 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

限制单次查询可访问的最大分区数。 创建表时指定的该设置值可以通过查询级别的设置覆盖。 可能的值:
  • 正整数
  • -1 - 不受限制 (默认)
你也可以在表的设置中指定 MergeTree 设置 max_partitions_to_read
最后修改于 2026年7月23日