{"Entry":{"collection":"guc","key":"vacuum_multixact_freeze_min_age","name":"vacuum_multixact_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":"9.2","status":"added","to":"9.3"},{"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":"50ddc4156b6e9004ba28f73bda7520af5b701d0bed355a2d3dd678c0dc967a6b","context":"","default_changed_in":[],"default_history":[{"from":"9.3","to":"19","value":"5000000"}],"derived_content_hash":"3863af43cf3aa4ba9bba1d3ee94529029a9c10e9925bac0899946576ea6e5c42","documentation_refresh":{"batch":"20261113","original_source_rev":"wiki-repair-20261023:178c679bfe9214470ed0df2cfb973d21af580a6e2b92c58783ed58212d5f7f3b","versions":{"14":"14.25","15":"15.20","16":"16.16","17":"17.12","18":"18.7","19":"19rc2"}},"editorial":{"advice":{"olap":"Bulk reads alone rarely justify a change, but concurrent row-locking loaders can consume MXIDs quickly. Measure mxid_age and pg_multixact growth during the real load.","oltp":"Tune from MXID consumption caused by row locks and multitransaction workloads. Preserve ample distance to autovacuum_multixact_freeze_max_age and monitor member storage as well as age.","small":"Keep the default unless MXID evidence says otherwise. Low transaction volume does not protect a workload that creates many shared row locks."},"mechanism":["Sets the minimum MultiXact age at which VACUUM replaces old tuple xmax MultiXact IDs. It is a user-context setting and is distinct from the XID cutoff.","Lower values make VACUUM process MXIDs earlier; higher values defer that work. PostgreSQL may still remove MultiXacts proactively, and the effective cutoff is capped at half of autovacuum_multixact_freeze_max_age.","Track mxid_age(relminmxid), mxid_age(datminmxid), and pg_multixact member storage. Interpret it with vacuum_multixact_freeze_table_age, autovacuum_multixact_freeze_max_age, and vacuum_multixact_failsafe_age."],"pitfalls":["Describing the cutoff as an XID control or monitoring only relfrozenxid.","Ignoring pg_multixact member-space pressure, which can force aggressive work before the configured age.","Raising the value while long-lived shared row locks continue to generate old MXIDs.","Using autovacuum_freeze_max_age instead of the MultiXact-specific maximum when calculating the cap."],"references":[{"title":"PostgreSQL 19 Beta 4: vacuum_multixact_freeze_min_age","url":"https://www.postgresql.org/docs/19/runtime-config-vacuum.html#GUC-VACUUM-MULTIXACT-FREEZE-MIN-AGE"},{"title":"PostgreSQL 19 release notes","url":"https://www.postgresql.org/docs/19/release-19.html"}],"related":["autovacuum_multixact_freeze_max_age","vacuum_multixact_freeze_table_age","vacuum_multixact_failsafe_age","vacuum_freeze_min_age","autovacuum","log_autovacuum_min_duration"],"summary":"vacuum_multixact_freeze_min_age — Minimum age at which VACUUM should freeze a MultiXactId in a table row. Observed in PG9.3–19 Beta 4; its last measured boot default is 5000000 in PG19 Beta 4, with user context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA."},"enumvals":[],"first_version":"9.3","group":"Vacuuming","group_slug":"vacuum","imported_at":"2026-09-27T17:57:32.302354+08:00","intro_commit":{"authored_at":"2014-02-13T19:30:30-03:00","discussion":[],"hash":"fb47de2be6e44397ab40508729606697f52702ac","subject":"Separate multixact freezing parameters from xid's","url":"https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=fb47de2be6e44397ab40508729606697f52702ac"},"key":"vacuum_multixact_freeze_min_age","last_version":"20","max_val":"","min_val":"","name":"vacuum_multixact_freeze_min_age","position":458,"present_in":["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:bf0cc45fc0ee4e3891e46b7e00d966232a2271c1fe992d65a57108e3ff87fe2b","receipt_sha256":"d4528676af690f4455ec6b6544ed3fc43ec10f36a8c166c46e819d4fcfd23a0d","repair":"wiki-repair-20261023"},"short_desc":"Specifies the cutoff age (in multixacts) that VACUUM should use to decide whether to trigger freezing of pages with an older multixact ID.","short_desc_zh":"","source_rev":"wiki-repair-20261023:178c679bfe9214470ed0df2cfb973d21af580a6e2b92c58783ed58212d5f7f3b","unit":"","vartype":"integer"}},"Definition":{"Collection":"guc","Key":"vacuum_multixact_freeze_min_age","SourceDatabase":"center","Version":"18","SourceTable":"guc","SourceKey":"vacuum_multixact_freeze_min_age","SourceRevision":"wiki-repair-20261023:178c679bfe9214470ed0df2cfb973d21af580a6e2b92c58783ed58212d5f7f3b","Facts":{"boot_val":"5000000","category":"Vacuuming / Freezing","context":"user","description":"Specifies the cutoff age (in multixacts) that VACUUM should use to decide whether to trigger freezing of pages with an older multixact ID. The default is 5 million multixacts. 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_multixact_freeze_max_age, so that there is not an unreasonably short time between forced autovacuums. For more information see Section 24.1.5.1.","description_zh":"指定 VACUUM 在决定是否冻结带有较旧多事务 ID 的页面时应采用的截止年龄（以多事务计）。默认值为 500 万个多事务。尽管用户可以将该值设置在 0 到 10 亿之间，VACUUM 仍会悄悄将其有效值限制为不超过 autovacuum_multixact_freeze_max_age 的一半，以避免强制自动清理之间的间隔过短。详见第 24.1.5.1 节。","description_zh_html":"\u003cp\u003e\n        指定 \u003ccode class=\"command\"\u003eVACUUM\u003c/code\u003e 在决定是否冻结带有较旧多事务 ID 的页面时应采用的截止年龄（以多事务计）。默认值为 500 万个多事务。尽管用户可以将该值设置在 0 到 10 亿之间，\u003ccode class=\"command\"\u003eVACUUM\u003c/code\u003e 仍会悄悄将其有效值限制为不超过 \u003ca class=\"xref\" href=\"/zh/docs/18/runtime-config-vacuum.html#GUC-AUTOVACUUM-MULTIXACT-FREEZE-MAX-AGE\"\u003eautovacuum_multixact_freeze_max_age\u003c/a\u003e 的一半，以避免强制自动清理之间的间隔过短。详见\u003ca class=\"xref\" href=\"/zh/docs/18/routine-vacuuming.html#VACUUM-FOR-MULTIXACT-WRAPAROUND\" title=\"24.1.5.1. 多事务与回卷\"\u003e第 24.1.5.1 节\u003c/a\u003e。\n       \u003c/p\u003e","doc":{"anchor":"GUC-VACUUM-MULTIXACT-FREEZE-MIN-AGE","file":"runtime-config-vacuum.html","lang":"en","sha256":"599d3819c5fa60f160ba633df604ee9afd85549ffad2ae2fb0c3132a00d47417","slug":"18"},"doc_html":"\u003cp\u003e\n         Specifies the cutoff age (in multixacts) that \u003ccode class=\"command\"\u003eVACUUM\u003c/code\u003e\n         should use to decide whether to trigger freezing of pages with\n         an older multixact ID.  The default is 5 million multixacts.\n         Although 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-MULTIXACT-FREEZE-MAX-AGE\"\u003eautovacuum_multixact_freeze_max_age\u003c/a\u003e,\n         so that there is not an unreasonably short time between forced\n         autovacuums.\n         For more information see \u003ca class=\"xref\" href=\"/docs/18/routine-vacuuming.html#VACUUM-FOR-MULTIXACT-WRAPAROUND\" title=\"24.1.5.1. Multixacts and Wraparound\"\u003eSection 24.1.5.1\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_multixact_freeze_min_age","short_desc":"Minimum age at which VACUUM should freeze a MultiXactId in 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-MULTIXACT-FREEZE-MIN-AGE","file":"runtime-config-vacuum.html","lang":"en","sha256":"599d3819c5fa60f160ba633df604ee9afd85549ffad2ae2fb0c3132a00d47417","slug":"18"}},"MeasuredEvidence":{"metadata_version":"18"}},"Text":{"Collection":"guc","Key":"vacuum_multixact_freeze_min_age","SourceDatabase":"center","Version":"18","Locale":"en","Title":"vacuum_multixact_freeze_min_age","Summary":"Specifies the cutoff age (in multixacts) that VACUUM should use to decide whether to trigger freezing of pages with an older multixact ID. The default is 5 million multixacts. 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_multixact_freeze_max_age, so that there is not an unreasonably short time between forced autovacuums. For more information see Section 24.1.5.1.","BodyHTML":"\u003cp\u003e\n         Specifies the cutoff age (in multixacts) that \u003ccode\u003eVACUUM\u003c/code\u003e\n         should use to decide whether to trigger freezing of pages with\n         an older multixact ID.  The default is 5 million multixacts.\n         Although 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-MULTIXACT-FREEZE-MAX-AGE\" rel=\"nofollow\"\u003eautovacuum_multixact_freeze_max_age\u003c/a\u003e,\n         so that there is not an unreasonably short time between forced\n         autovacuums.\n         For more information see \u003ca href=\"/docs/18/routine-vacuuming.html#VACUUM-FOR-MULTIXACT-WRAPAROUND\" rel=\"nofollow\"\u003eSection 24.1.5.1\u003c/a\u003e.\n        \u003c/p\u003e","SourceRevision":"wiki-repair-20261023:178c679bfe9214470ed0df2cfb973d21af580a6e2b92c58783ed58212d5f7f3b","ContentHash":"d92704e332b789de785b519cf8572420ae60d09c24e8b9d636cba11942c32a0c","Payload":{"description":"Specifies the cutoff age (in multixacts) that VACUUM should use to decide whether to trigger freezing of pages with an older multixact ID. The default is 5 million multixacts. 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_multixact_freeze_max_age, so that there is not an unreasonably short time between forced autovacuums. For more information see Section 24.1.5.1."}},"RequestedLocale":"en","Fallback":false,"Versions":["10","11","12","13","14","15","16","17","18","19","20","9.3","9.4","9.5","9.6"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
