You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL 11:查询表reloptions为NULL,是否表示Autovacuum未启用?

PostgreSQL表Autovacuum状态判断答疑

reloptions返回NULL≠表未启用Autovacuum,核心逻辑如下:

  • 在全局Autovacuum已启用的前提下,PostgreSQL表默认继承全局配置——只有当你手动给表设置了autovacuum_enabled=false时,pg_class.reloptions才会显示这个专属配置项。
  • 若reloptions为NULL,说明该表没有任何自定义的Autovacuum表级配置,完全遵循全局规则,也就是正常启用Autovacuum。

直观对比:

  • 查询返回{autovacuum_enabled=false}:该表被手动禁用Autovacuum;
  • 查询返回NULL:表的Autovacuum处于启用状态(继承全局设置)。

如果要批量确认所有业务表的Autovacuum状态,推荐用这个更清晰的查询:

SELECT 
  relname AS table_name,
  CASE 
    WHEN reloptions @> ARRAY['autovacuum_enabled=false'] THEN '已禁用'
    ELSE '启用(继承全局配置)'
  END AS autovacuum_status
FROM pg_class 
WHERE relkind = 'r' -- 仅查询普通业务表
AND relnamespace NOT IN (SELECT oid FROM pg_namespace WHERE nspname IN ('pg_catalog', 'information_schema')); -- 排除系统表

内容的提问来源于stack exchange,提问作者Falcon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 21:36:26