更新时间:2025-08-22 GMT+08:00
分享

自动清理

系统自动清理进程自动执行VACUUM和ANALYZE命令,回收被标识为删除状态的记录空间,并更新表的统计数据。

autovacuum_compaction_rows_limit

参数说明:小CU的阈值,存活元组数小于这个值的就会被认为是小CU。该参数9.1.1.100及以上集群版本中已废弃。

参数类型:USERSET

取值范围:整型,-1~5000

默认值:2500

  • 版本低于9.1.0.100,默认值为-1,表示关闭0CU开关。禁止设置该参数,否则可能会导致主键数据重复
  • 9.1.0.100版本,该参数默认值为0。
  • 9.1.0.200及以上版本,该参数默认值为2500。

autoanalyze_mode

参数说明:设置autoanalyze的模式。该参数仅8.2.0及以上集群版本支持。

参数类型:USERSET

取值范围:枚举类型

  • normal表示普通的autoanalyze。
  • light表示轻量化的autoanalyze。

默认值:

  • 若当前集群为低版本升级到8.2.0及以上集群版本,为保持和前向兼容,默认值为normal。
  • 若当前集群为新装的8.2.0及以上集群版本,默认值为light。

analyze_stats_mode

参数说明:设置analyze计算统计信息的模式。

参数类型:USERSET

取值范围:枚举类型

  • memory表示强制使用内存计算统计信息,不计算多列统计信息。
  • sample_table表示强制使用临时采样表计算统计信息,临时表不支持使用该模式。
  • dynamic表示按内存maintenance_work_mem大小自适应选择统计信息计算模式,若maintenance_work_mem可放下样本,则使用内存方式,否则使用临时采样表方式。

默认值:

  • 若当前集群为低版本升级到8.2.0.100及以上集群版本,为保持和前向兼容,默认值为memory。
  • 若当前集群为新装的8.2.0.100及以上集群版本,默认值为dynamic。

analyze_sample_mode

参数说明:设置analyze时使用的采样模型。

参数类型:USERSET

取值范围:整型,0~2。

  • 0 表示使用默认蓄水池采样模型。
  • 1 表示使用优化的蓄水池采样模型。
  • 2 表示使用range采样模型。

默认值:0

autovacuum_max_workers

参数说明:设置能同时运行的自动清理行存表线程的最大数量。

参数类型:SIGHUP

取值范围:整型,0~128 。其中0表示不会自动进行行存表的autovacuum。

默认值:2

该参数与autovacuum共同发挥作用,对系统表和用户行存表的清理规则如下:

  • autovacuum_max_workers = 0时,autovacuum被彻底关闭,不会对行存表进行清理。
  • autovacuum_max_workers > 0和autovacuum = off,只对系统表进行清理。
  • autovacuum_max_workers > 0和autovacuum = on,会对所有行存表进行清理。

autovacuum_max_workers_hstore

参数说明:设置同时运行的专用于merge hstore delta表的自动线程的最大数量,不受autovacuum参数控制。

参数类型:SIGHUP

取值范围:整型

默认值:3

autovacuum_naptime

参数说明:设置两次自动清理操作的时间间隔。

参数类型:SIGHUP

取值范围:整型,1~2147483 ,单位为秒(s)。

默认值:20s

autovacuum_vacuum_cost_delay

参数说明:设置在自动VACUUM操作里使用的开销延迟数值。

参数类型:SIGHUP

取值范围:整型,-1~100,单位为毫秒(ms)。其中-1表示使用常规的vacuum_cost_delay。

默认值:2ms

check_crossvw_write

参数说明:控制是否要开启跨VW写场景的检测。该参数仅9.1.0.100及以上集群版本支持。

参数类型:USERSET

取值范围:整型,-1、1。

  • -1表示兼容9.0.3版本能力。对于v3表vacuum,只清理所有epoch的非最后一个文件。
  • 1表示检查是否为跨VW写场景。对于v3表vacuum,若检查为非跨VW写的场景,清理所有epoch的非最后一个文件,清理当前epoch的最后一个文件,清理小于当前epoch的最后一个文件。若检查为跨VW写的场景,CN节点会获取所有DN节点的epoch信息包装成epochList下发给元数据VW,v3表vacuum会清理所有epoch的非最后一个文件,清理小于max{epochList}且不在epochList中的epoch最后一个文件。

默认值:1

enable_pg_stat_object

参数说明:控制auto vacuum是否更新PG_STAT_OBJECT系统表。该参数仅8.2.1及以上集群版本支持。

参数类型:USERSET

取值范围:布尔型

  • on表示auto vacuum更新PG_STAT_OBJECT系统表。
  • off表示auto vacuum不更新PG_STAT_OBJECT系统表。

默认值:on

相关文档