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

max_execution_speed

每秒最大执行行数。在每个数据块上,都会在 timeout_before_checking_execution_speed 超时后进行检查。如果执行速度过高,系统会降低执行速度。

max_execution_speed_bytes

每秒允许的最大执行字节数。当 timeout_before_checking_execution_speed 到期时,会在每个数据块上进行检查。如果执行速度过高,则会降低执行速度。

max_execution_time

查询的最大执行时间 (单位为秒) 。 max_execution_time 参数可能有些不好理解。 它的工作方式是根据当前查询的执行速度进行插值计算 (这种行为由 timeout_before_checking_execution_speed 控制) 。 如果预计执行时间超过指定的 max_execution_time,ClickHouse 将中断查询。 默认情况下,timeout_before_checking_execution_speed 设置为 10 秒。这意味着查询执行 10 秒后,ClickHouse 会开始估算总执行时间。比如,如果 max_execution_time 设置为 3600 秒 (1 小时) ,那么当估算出的执行时间超过 3600 秒限制时,ClickHouse 就会终止该查询。 如果将 timeout_before_checking_execution_speed 设置为 0,ClickHouse 将以实际时钟时间作为 max_execution_time 的依据。 如果查询运行时间超过指定秒数,其行为将由 timeout_overflow_mode 决定,默认值为 throw
只有在数据处理过程中的特定位置才会检查是否超时,因此查询也只能在这些位置停止。 目前无法在聚合状态合并期间或查询分析期间停止, 因此实际运行时间会高于此设置的值。

max_execution_time_leaf

其语义与 max_execution_time 类似,但仅 适用于分布式或远程查询中的叶节点。 例如,如果我们希望将叶节点上的执行时间限制为 10s,但 对初始节点不设限制,那么在嵌套子查询的设置中,应使用 max_execution_time_leaf,而不是 max_execution_time
我们可以将 max_execution_time_leaf 作为查询设置使用:
最后修改于 2026年7月23日