{"Entry":{"collection":"guc","key":"vacuum_freeze_min_age","name":"vacuum_freeze_min_age","aliases":[],"metadata":{"baseline":false,"boot_human":"Not specified","boot_val":null,"category":"Vacuuming / Freezing","category_zh":"","changed_in":["18"],"changes":[{"documentation_changed":false,"fields":{},"from":"8.1","status":"added","to":"8.2"},{"documentation_changed":true,"fields":{},"from":"8.2","status":"changed","to":"8.3"},{"documentation_changed":true,"fields":{},"from":"8.3","status":"changed","to":"8.4"},{"documentation_changed":true,"fields":{},"from":"9.1","status":"changed","to":"9.2"},{"documentation_changed":true,"fields":{},"from":"9.3","status":"changed","to":"9.4"},{"documentation_changed":true,"fields":{},"from":"9.5","status":"changed","to":"9.6"},{"documentation_changed":true,"fields":{},"from":"13","status":"changed","to":"14"},{"documentation_changed":true,"fields":{},"from":"15","status":"changed","to":"16"},{"documentation_changed":true,"fields":{},"from":"16","status":"changed","to":"17"},{"documentation_changed":false,"fields":{"category":{"from":"Client Connection Defaults / Statement Behavior","to":"Vacuuming / Freezing"}},"from":"17","status":"changed","to":"18"}],"content_hash":"aa7f0c874bb2c6629588b172bc8adac4e5f54cbc92ce6c1070082ce3ceef0d1c","context":"","default_changed_in":[],"default_history":[{"from":"9.0","to":"19","value":"50000000"}],"derived_content_hash":"27740536982dafe52896b533d644d9042a5e7019fbc446aec6c0dcf8d3abbb37","documentation_refresh":{"batch":"20261113","original_source_rev":"wiki-repair-20261023:86b9bfee9324720daf5d2082765347f42e6b636f7e6106d714a7e2b0a382b609","versions":{"14":"14.25","15":"15.20","16":"16.16","17":"17.12","18":"18.7","19":"19rc2"}},"editorial":{"advice":{"olap":"For append-mostly or static partitions, a lower value during planned VACUUM can freeze XIDs earlier and reduce later aggressive work; verify the extra WAL and scan cost.","oltp":"Keep enough distance below autovacuum_freeze_max_age for routine vacuums to advance relfrozenxid. Tune from peak XID consumption and measured vacuum completion, not days on a calendar.","small":"Keep the upstream default unless XID-age evidence justifies a change. Small databases still share the cluster transaction counter and need every database monitored."},"mechanism":["Sets the minimum XID age at which VACUUM freezes tuple xmin values. It is a user-context setting, so a session can override it for manual VACUUM.","VACUUM computes an XID freeze cutoff from this age. Lower values freeze XIDs earlier and can repeat work on rows soon updated; higher values defer work. The effective value is capped at half of autovacuum_freeze_max_age.","Track age(relfrozenxid) for tables and age(datfrozenxid) for every database. Interpret this lower cutoff with vacuum_freeze_table_age, autovacuum_freeze_max_age, and vacuum_failsafe_age; the separate vacuum_multixact_freeze_min_age controls MXIDs."],"pitfalls":["Describing the cutoff as an MXID control; MultiXacts use vacuum_multixact_freeze_min_age.","Converting XID age to time without the measured transaction rate.","Raising the value so far that routine vacuum loses useful headroom before anti-wraparound work.","Ignoring per-table autovacuum_freeze_min_age overrides."],"references":[{"title":"PostgreSQL 19 Beta 4: vacuum_freeze_min_age","url":"https://www.postgresql.org/docs/19/runtime-config-vacuum.html#GUC-VACUUM-FREEZE-MIN-AGE"},{"title":"PostgreSQL 19 release notes","url":"https://www.postgresql.org/docs/19/release-19.html"}],"related":["autovacuum_freeze_max_age","vacuum_freeze_table_age","vacuum_failsafe_age","vacuum_multixact_freeze_min_age","autovacuum","log_autovacuum_min_duration"],"summary":"vacuum_freeze_min_age — Minimum age at which VACUUM should freeze a table row. Observed in PG9.0–19 Beta 4; its last measured boot default is 50000000 in PG19 Beta 4, with user context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA."},"enumvals":[],"first_version":"8.2","group":"Vacuuming","group_slug":"vacuum","imported_at":"2026-09-27T17:57:32.288961+08:00","intro_commit":{},"key":"vacuum_freeze_min_age","last_version":"20","max_val":"","min_val":"","name":"vacuum_freeze_min_age","position":453,"present_in":["8.2","8.3","8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6","10","11","12","13","14","15","16","17","18","19","20"],"repair_provenance":{"original_source_revision":"english-manuals:5b2ce882558d9c8459675024b440e332a00962b67d129d68bc7a0e690411938a","receipt_sha256":"07fe9b92fb0d007a6aeb47ffa43e22e3f72f90dcf101ff6e0d88e6ad177f8527","repair":"wiki-repair-20261023"},"short_desc":"Specifies the cutoff age (in transactions) that VACUUM should use to decide whether to trigger freezing of pages that have an older XID.","short_desc_zh":"","source_rev":"wiki-repair-20261023:86b9bfee9324720daf5d2082765347f42e6b636f7e6106d714a7e2b0a382b609","unit":"","vartype":"integer"}},"Definition":{"Collection":"guc","Key":"vacuum_freeze_min_age","SourceDatabase":"center","Version":"18","SourceTable":"guc","SourceKey":"vacuum_freeze_min_age","SourceRevision":"wiki-repair-20261023:86b9bfee9324720daf5d2082765347f42e6b636f7e6106d714a7e2b0a382b609","Facts":{"boot_val":"50000000","category":"Vacuuming / Freezing","context":"user","description":"Specifies the cutoff age (in transactions) that VACUUM should use to decide whether to trigger freezing of pages that have an older XID. The default is 50 million transactions. Although users can set this value anywhere from zero to one billion, VACUUM will silently limit the effective value to half the value of autovacuum_freeze_max_age, so that there is not an unreasonably short time between forced autovacuums. For more information see Section 24.1.5.","description_zh":"指定 VACUUM 在决定是否冻结带有较旧 XID 的页面时应采用的截止年龄（以事务数计）。默认值为 5000 万个事务。尽管用户可以将该值设置在 0 到 10 亿之间，VACUUM 仍会悄悄将其有效值限制为不超过 autovacuum_freeze_max_age 的一半，以避免强制自动清理之间的间隔过短。详见第 24.1.5 节。","description_zh_html":"\u003cp\u003e\n        指定 \u003ccode class=\"command\"\u003eVACUUM\u003c/code\u003e 在决定是否冻结带有较旧 XID 的页面时应采用的截止年龄（以事务数计）。默认值为 5000 万个事务。尽管用户可以将该值设置在 0 到 10 亿之间，\u003ccode class=\"command\"\u003eVACUUM\u003c/code\u003e 仍会悄悄将其有效值限制为不超过 \u003ca class=\"xref\" href=\"/zh/docs/18/runtime-config-vacuum.html#GUC-AUTOVACUUM-FREEZE-MAX-AGE\"\u003eautovacuum_freeze_max_age\u003c/a\u003e 的一半，以避免强制自动清理之间的间隔过短。详见\u003ca class=\"xref\" href=\"/zh/docs/18/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND\" title=\"24.1.5. 防止事务 ID 回卷失败\"\u003e第 24.1.5 节\u003c/a\u003e。\n       \u003c/p\u003e","doc":{"anchor":"GUC-VACUUM-FREEZE-MIN-AGE","file":"runtime-config-vacuum.html","lang":"en","sha256":"599d3819c5fa60f160ba633df604ee9afd85549ffad2ae2fb0c3132a00d47417","slug":"18"},"doc_html":"\u003cp\u003e\n         Specifies the cutoff age (in transactions) that\n         \u003ccode class=\"command\"\u003eVACUUM\u003c/code\u003e should use to decide whether to\n         trigger freezing of pages that have an older XID.\n         The default is 50 million transactions.  Although\n         users can set this value anywhere from zero to one billion,\n         \u003ccode class=\"command\"\u003eVACUUM\u003c/code\u003e will silently limit the effective value to half\n         the value of \u003ca class=\"xref\" href=\"/docs/18/runtime-config-vacuum.html#GUC-AUTOVACUUM-FREEZE-MAX-AGE\"\u003eautovacuum_freeze_max_age\u003c/a\u003e, so\n         that there is not an unreasonably short time between forced\n         autovacuums.  For more information see \u003ca class=\"xref\" href=\"/docs/18/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND\" title=\"24.1.5. Preventing Transaction ID Wraparound Failures\"\u003eSection 24.1.5\u003c/a\u003e.\n        \u003c/p\u003e","doc_same_as":"","documentation_revision":{"inputs":[{"file":"runtime-config-vacuum.html","kind":"same-version-reviewed-manual","locale":"en","sha256":"599d3819c5fa60f160ba633df604ee9afd85549ffad2ae2fb0c3132a00d47417","version":"18.7"},{"file":"runtime-config-vacuum.html","kind":"same-version-reviewed-manual","locale":"zh-Hans","sha256":"b835e4b6c446cfdaf673750aba29ba28fc55ef6cc0c531558c1e394fdc05a140","version":"18.7"}],"release":"18.7","runtime_remeasured":false,"source_revision":"pgdoc:b9f0e7232f60f380d642ac9b99226606c254b552"},"documented":true,"enumvals":null,"extra_desc":null,"lang":"en","max_val":"1000000000","metadata_version":"18","min_val":"0","name":"vacuum_freeze_min_age","short_desc":"Minimum age at which VACUUM should freeze a table row.","source":"pg-settings-source-snapshot","translation_provenance":{"inputs":[{"kind":"current-pgdoc-translation","path":"/Users/vonng/pgsty/pgdoc/zh/18/html/runtime-config-vacuum.html","sha256":"ea621aa6ed500fc56d21868a21fd313872cec24b86caf4c8f9bdfdc804b8235f"}],"kind":"same-version-pgdoc","locale":"zh-Hans","source_revision":"b1b500221dbe5437cfca004d6b04d3f6e422765d","version":"18"},"unit":null,"vartype":"integer","zh_from":"same-version-manual"},"ManualEvidence":{"doc":{"anchor":"GUC-VACUUM-FREEZE-MIN-AGE","file":"runtime-config-vacuum.html","lang":"en","sha256":"599d3819c5fa60f160ba633df604ee9afd85549ffad2ae2fb0c3132a00d47417","slug":"18"}},"MeasuredEvidence":{"metadata_version":"18"}},"Text":{"Collection":"guc","Key":"vacuum_freeze_min_age","SourceDatabase":"center","Version":"18","Locale":"en","Title":"vacuum_freeze_min_age","Summary":"Specifies the cutoff age (in transactions) that VACUUM should use to decide whether to trigger freezing of pages that have an older XID. The default is 50 million transactions. Although users can set this value anywhere from zero to one billion, VACUUM will silently limit the effective value to half the value of autovacuum_freeze_max_age, so that there is not an unreasonably short time between forced autovacuums. For more information see Section 24.1.5.","BodyHTML":"\u003cp\u003e\n         Specifies the cutoff age (in transactions) that\n         \u003ccode\u003eVACUUM\u003c/code\u003e should use to decide whether to\n         trigger freezing of pages that have an older XID.\n         The default is 50 million transactions.  Although\n         users can set this value anywhere from zero to one billion,\n         \u003ccode\u003eVACUUM\u003c/code\u003e will silently limit the effective value to half\n         the value of \u003ca href=\"/docs/18/runtime-config-vacuum.html#GUC-AUTOVACUUM-FREEZE-MAX-AGE\" rel=\"nofollow\"\u003eautovacuum_freeze_max_age\u003c/a\u003e, so\n         that there is not an unreasonably short time between forced\n         autovacuums.  For more information see \u003ca href=\"/docs/18/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND\" rel=\"nofollow\"\u003eSection 24.1.5\u003c/a\u003e.\n        \u003c/p\u003e","SourceRevision":"wiki-repair-20261023:86b9bfee9324720daf5d2082765347f42e6b636f7e6106d714a7e2b0a382b609","ContentHash":"ea325f47a8640e23b768f7953806bc28c43c1edab6f550ba3ba6bac0bd52d5c7","Payload":{"description":"Specifies the cutoff age (in transactions) that VACUUM should use to decide whether to trigger freezing of pages that have an older XID. The default is 50 million transactions. Although users can set this value anywhere from zero to one billion, VACUUM will silently limit the effective value to half the value of autovacuum_freeze_max_age, so that there is not an unreasonably short time between forced autovacuums. For more information see Section 24.1.5."}},"RequestedLocale":"en","Fallback":false,"Versions":["10","11","12","13","14","15","16","17","18","19","20","8.2","8.3","8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
