跳转到主要内容

生存时间 (TTL) 规则与控制

生存时间 (TTL) 终究会被应用。这是什么意思?MergeTree 表设置 merge_with_ttl_timeout 用于设置再次执行带删除 TTL 的合并前的最短延迟时间,单位为秒。默认值为 14400 秒 (4 小时) 。但这只是最短延迟,实际触发删除 TTL 合并可能还需要更长时间。 你可以使用以下查询查看当前所有 TTL 设置 (例如 merge_with_ttl_timeout) :
响应如下:
你可以使用 SHOW CREATE TABLE 检查表中是否包含生存时间 (TTL) 规则,以及表中的任何 SETTINGS 是否修改了上述设置的值:

强制应用生存时间 (TTL) 规则

这并不是最理想的解决方案,但你可以显式调用 MATERIALIZE TTL,强制将某个表的所有生存时间 (TTL) 规则物化:

影响生存时间 (TTL) 的后台线程

你的生存时间 (TTL) 规则之所以可能没有生效,是因为 background pool 中可用的工作线程不足。例如,如果你频繁插入数据,整个 background pool 可能都会被常规合并占满。不过,你可以增大 background pool 的大小。 你可以使用以下查询检查当前的 background pool 大小:
返回结果如下所示:
请参阅文档,了解如何修改 background_pool_size 设置,其配置如下:
你可以使用以下查询查看当前后台线程池的活动情况:
最后修改于 2026年7月2日