Documentation / Storage Parameters
PostgreSQL Storage Parameters
Per-object options for tables, TOAST, indexes and views, extracted from each version of the English manual.
Reading PostgreSQL 18.6.
60 entries; 56 recorded in PostgreSQL 18.6.
| Name and purpose | Group | Version history |
|---|---|---|
| deduplicate_itemsdeduplicate_items Controls usage of the B-tree deduplication technique described in Section 65.1.4.3 . Set to ON or OFF to enable or disable the optimization. (Alternative spellings of ON and OFF are allowed as described in Section 19.1 .) The default is ON . |
B-tree indexes | |
| fillfactorB-tree indexes fillfactor Controls how full the index method will try to pack index pages. For B-trees, leaf pages are filled to this percentage during initial index builds, and also when extending the index at the right (adding new largest key values). If pages subsequently become completely full, they will be split, leading to fragmentation of the on-disk index structure. B-trees use a default fillfactor of 90, but any integer value from 10 to 100 can be selected. |
B-tree indexes | |
| vacuum_cleanup_index_scale_factorvacuum_cleanup_index_scale_factor Not recorded in the selected version. |
B-tree indexesNot recorded | |
| autosummarizeautosummarize Defines whether a summarization run is queued for the previous page range whenever an insertion is detected on the next one (see Section 65.5.1.1 for more details). The default is off . |
BRIN indexes | |
| pages_per_rangepages_per_range Defines the number of table blocks that make up one block range for each entry of a BRIN index (see Section 65.5.1 for more details). The default is 128 . |
BRIN indexes | |
| fastupdatefastupdate Controls usage of the fast update technique described in Section 65.4.4.1 . ON enables fast update, OFF disables it. The default is ON . |
GIN indexes | |
| gin_pending_list_limitgin_pending_list_limit Overrides the global setting of gin_pending_list_limit for this index. This value is specified in kilobytes. |
GIN indexes | |
| bufferingbuffering Controls whether the buffered build technique described in Section 65.2.4.1 is used to build the index. With OFF buffering is disabled, with ON it is enabled, and with AUTO it is initially disabled, but is turned on on-the-fly once the index size reaches effective_cache_size . The default is AUTO . Note that if sorted build is possible, it will be used instead of buffered build unless buffering=ON is specified. |
GiST indexes | |
| fillfactorGiST indexes fillfactor Controls how full the index method will try to pack index pages. For B-trees, leaf pages are filled to this percentage during initial index builds, and also when extending the index at the right (adding new largest key values). If pages subsequently become completely full, they will be split, leading to fragmentation of the on-disk index structure. B-trees use a default fillfactor of 90, but any integer value from 10 to 100 can be selected. |
GiST indexes | |
| fillfactorHash indexes fillfactor Controls how full the index method will try to pack index pages. For B-trees, leaf pages are filled to this percentage during initial index builds, and also when extending the index at the right (adding new largest key values). If pages subsequently become completely full, they will be split, leading to fragmentation of the on-disk index structure. B-trees use a default fillfactor of 90, but any integer value from 10 to 100 can be selected. |
Hash indexes | |
| fillfactorSP-GiST indexes fillfactor Controls how full the index method will try to pack index pages. For B-trees, leaf pages are filled to this percentage during initial index builds, and also when extending the index at the right (adding new largest key values). If pages subsequently become completely full, they will be split, leading to fragmentation of the on-disk index structure. B-trees use a default fillfactor of 90, but any integer value from 10 to 100 can be selected. |
SP-GiST indexes | |
| toast.autovacuum_enabledTOAST autovacuum_enabled Enables or disables the autovacuum daemon for a particular table. If true, the autovacuum daemon will perform automatic VACUUM and/or ANALYZE operations on this table following the rules discussed in Section 24.1.6 . If false, this table will not be autovacuumed, except to prevent transaction ID wraparound. See Section 24.1.5 for more about wraparound prevention. Note that the autovacuum daemon does not run at all (except to prevent transaction ID wraparound) if the autovacuum parameter is false; setting individual tables' storage parameters does not override that. Therefore there is seldom much point in explicitly setting this storage parameter to true , only to false . |
TOAST tables | |
| toast.autovacuum_freeze_max_ageTOAST autovacuum_freeze_max_age Per-table value for autovacuum_freeze_max_age parameter. Note that autovacuum will ignore per-table autovacuum_freeze_max_age parameters that are larger than the system-wide setting (it can only be set smaller). |
TOAST tables | |
| toast.autovacuum_freeze_min_ageTOAST autovacuum_freeze_min_age Per-table value for vacuum_freeze_min_age parameter. Note that autovacuum will ignore per-table autovacuum_freeze_min_age parameters that are larger than half the system-wide autovacuum_freeze_max_age setting. |
TOAST tables | |
| toast.autovacuum_freeze_table_ageTOAST autovacuum_freeze_table_age Per-table value for vacuum_freeze_table_age parameter. |
TOAST tables | |
| toast.autovacuum_multixact_freeze_max_ageTOAST autovacuum_multixact_freeze_max_age Per-table value for autovacuum_multixact_freeze_max_age parameter. Note that autovacuum will ignore per-table autovacuum_multixact_freeze_max_age parameters that are larger than the system-wide setting (it can only be set smaller). |
TOAST tables | |
| toast.autovacuum_multixact_freeze_min_ageTOAST autovacuum_multixact_freeze_min_age Per-table value for vacuum_multixact_freeze_min_age parameter. Note that autovacuum will ignore per-table autovacuum_multixact_freeze_min_age parameters that are larger than half the system-wide autovacuum_multixact_freeze_max_age setting. |
TOAST tables | |
| toast.autovacuum_multixact_freeze_table_ageTOAST autovacuum_multixact_freeze_table_age Per-table value for vacuum_multixact_freeze_table_age parameter. |
TOAST tables | |
| toast.autovacuum_vacuum_cost_delayTOAST autovacuum_vacuum_cost_delay Per-table value for autovacuum_vacuum_cost_delay parameter. |
TOAST tables | |
| toast.autovacuum_vacuum_cost_limitTOAST autovacuum_vacuum_cost_limit Per-table value for autovacuum_vacuum_cost_limit parameter. |
TOAST tables | |
| toast.autovacuum_vacuum_insert_scale_factorTOAST autovacuum_vacuum_insert_scale_factor Per-table value for autovacuum_vacuum_insert_scale_factor parameter. |
TOAST tables | |
| toast.autovacuum_vacuum_insert_thresholdTOAST autovacuum_vacuum_insert_threshold Per-table value for autovacuum_vacuum_insert_threshold parameter. The special value of -1 may be used to disable insert vacuums on the table. |
TOAST tables | |
| toast.autovacuum_vacuum_max_thresholdTOAST autovacuum_vacuum_max_threshold Per-table value for autovacuum_vacuum_max_threshold parameter. |
TOAST tables | |
| toast.autovacuum_vacuum_scale_factorTOAST autovacuum_vacuum_scale_factor Per-table value for autovacuum_vacuum_scale_factor parameter. |
TOAST tables | |
| toast.autovacuum_vacuum_thresholdTOAST autovacuum_vacuum_threshold Per-table value for autovacuum_vacuum_threshold parameter. |
TOAST tables | |
| toast.log_autovacuum_min_durationTOAST log_autovacuum_min_duration Per-table value for log_autovacuum_min_duration parameter. |
TOAST tables | |
| toast.vacuum_index_cleanupTOAST vacuum_index_cleanup Forces or disables index cleanup when VACUUM is run on this table. The default value is AUTO . With OFF , index cleanup is disabled, with ON it is enabled, and with AUTO a decision is made dynamically, each time VACUUM runs. The dynamic behavior allows VACUUM to avoid needlessly scanning indexes to remove very few dead tuples. Forcibly disabling all index cleanup can speed up VACUUM very significantly, but may also lead to severely bloated indexes if table modifications are frequent. The INDEX_CLEANUP parameter of VACUUM , if specified, overrides the value of this option. |
TOAST tables | |
| toast.vacuum_max_eager_freeze_failure_rateTOAST vacuum_max_eager_freeze_failure_rate Per-table value for vacuum_max_eager_freeze_failure_rate parameter. |
TOAST tables | |
| toast.vacuum_truncateTOAST vacuum_truncate Per-table value for vacuum_truncate parameter. The TRUNCATE parameter of VACUUM , if specified, overrides the value of this option. |
TOAST tables | |
| oidsoids This clause specifies optional storage parameters for a table or index; see Storage Parameters below for more information. For backward-compatibility the WITH clause for a table can also include OIDS=FALSE to specify that rows of the new table should not contain OIDs (object identifiers), OIDS=TRUE is not supported anymore. |
Table compatibility options | |
| autovacuum_analyze_scale_factorautovacuum_analyze_scale_factor Per-table value for autovacuum_analyze_scale_factor parameter. |
Tables and materialized views | |
| autovacuum_analyze_thresholdautovacuum_analyze_threshold Per-table value for autovacuum_analyze_threshold parameter. |
Tables and materialized views | |
| autovacuum_enabledautovacuum_enabled Enables or disables the autovacuum daemon for a particular table. If true, the autovacuum daemon will perform automatic VACUUM and/or ANALYZE operations on this table following the rules discussed in Section 24.1.6 . If false, this table will not be autovacuumed, except to prevent transaction ID wraparound. See Section 24.1.5 for more about wraparound prevention. Note that the autovacuum daemon does not run at all (except to prevent transaction ID wraparound) if the autovacuum parameter is false; setting individual tables' storage parameters does not override that. Therefore there is seldom much point in explicitly setting this storage parameter to true , only to false . |
Tables and materialized views | |
| autovacuum_freeze_max_ageautovacuum_freeze_max_age Per-table value for autovacuum_freeze_max_age parameter. Note that autovacuum will ignore per-table autovacuum_freeze_max_age parameters that are larger than the system-wide setting (it can only be set smaller). |
Tables and materialized views | |
| autovacuum_freeze_min_ageautovacuum_freeze_min_age Per-table value for vacuum_freeze_min_age parameter. Note that autovacuum will ignore per-table autovacuum_freeze_min_age parameters that are larger than half the system-wide autovacuum_freeze_max_age setting. |
Tables and materialized views | |
| autovacuum_freeze_table_ageautovacuum_freeze_table_age Per-table value for vacuum_freeze_table_age parameter. |
Tables and materialized views | |
| autovacuum_multixact_freeze_max_ageautovacuum_multixact_freeze_max_age Per-table value for autovacuum_multixact_freeze_max_age parameter. Note that autovacuum will ignore per-table autovacuum_multixact_freeze_max_age parameters that are larger than the system-wide setting (it can only be set smaller). |
Tables and materialized views | |
| autovacuum_multixact_freeze_min_ageautovacuum_multixact_freeze_min_age Per-table value for vacuum_multixact_freeze_min_age parameter. Note that autovacuum will ignore per-table autovacuum_multixact_freeze_min_age parameters that are larger than half the system-wide autovacuum_multixact_freeze_max_age setting. |
Tables and materialized views | |
| autovacuum_multixact_freeze_table_ageautovacuum_multixact_freeze_table_age Per-table value for vacuum_multixact_freeze_table_age parameter. |
Tables and materialized views | |
| autovacuum_parallel_workersautovacuum_parallel_workers Not recorded in the selected version. |
Tables and materialized viewsNot recorded | |
| autovacuum_vacuum_cost_delayautovacuum_vacuum_cost_delay Per-table value for autovacuum_vacuum_cost_delay parameter. |
Tables and materialized views | |
| autovacuum_vacuum_cost_limitautovacuum_vacuum_cost_limit Per-table value for autovacuum_vacuum_cost_limit parameter. |
Tables and materialized views | |
| autovacuum_vacuum_insert_scale_factorautovacuum_vacuum_insert_scale_factor Per-table value for autovacuum_vacuum_insert_scale_factor parameter. |
Tables and materialized views | |
| autovacuum_vacuum_insert_thresholdautovacuum_vacuum_insert_threshold Per-table value for autovacuum_vacuum_insert_threshold parameter. The special value of -1 may be used to disable insert vacuums on the table. |
Tables and materialized views | |
| autovacuum_vacuum_max_thresholdautovacuum_vacuum_max_threshold Per-table value for autovacuum_vacuum_max_threshold parameter. |
Tables and materialized views | |
| autovacuum_vacuum_scale_factorautovacuum_vacuum_scale_factor Per-table value for autovacuum_vacuum_scale_factor parameter. |
Tables and materialized views | |
| autovacuum_vacuum_thresholdautovacuum_vacuum_threshold Per-table value for autovacuum_vacuum_threshold parameter. |
Tables and materialized views | |
| fillfactorTables and materialized views fillfactor The fillfactor for a table is a percentage between 10 and 100. 100 (complete packing) is the default. When a smaller fillfactor is specified, INSERT operations pack table pages only to the indicated percentage; the remaining space on each page is reserved for updating rows on that page. This gives UPDATE a chance to place the updated copy of a row on the same page as the original, which is more efficient than placing it on a different page, and makes heap-only tuple updates more likely. For a table whose entries are never updated, complete packing is the best choice, but in heavily updated tables smaller fillfactors are appropriate. This parameter cannot be set for TOAST tables. |
Tables and materialized views | |
| log_autoanalyze_min_durationlog_autoanalyze_min_duration Not recorded in the selected version. |
Tables and materialized viewsNot recorded | |
| log_autovacuum_min_durationlog_autovacuum_min_duration Per-table value for log_autovacuum_min_duration parameter. |
Tables and materialized views | |
| parallel_workersparallel_workers This sets the number of workers that should be used to assist a parallel scan of this table. If not set, the system will determine a value based on the relation size. The actual number of workers chosen by the planner or by utility statements that use parallel scans may be less, for example due to the setting of max_worker_processes . |
Tables and materialized views | |
| toast_tuple_targettoast_tuple_target The toast_tuple_target specifies the minimum tuple length required before we try to compress and/or move long column values into TOAST tables, and is also the target length we try to reduce the length below once toasting begins. This affects columns marked as External (for move), Main (for compression), or Extended (for both) and applies only to new tuples. There is no effect on existing rows. By default this parameter is set to allow at least 4 tuples per block, which with the default block size will be 2040 bytes. Valid values are between 128 bytes and the (block size - header), by default 8160 bytes. Changing this value may not be useful for very short or very long rows. Note that the default setting is often close to optimal, and it is possible that setting this parameter could have negative effects in some cases. This parameter cannot be set for TOAST tables. |
Tables and materialized views | |
| toast_value_typetoast_value_type Not recorded in the selected version. |
Tables and materialized viewsNot recorded | |
| user_catalog_tableuser_catalog_table Declare the table as an additional catalog table for purposes of logical replication. See Section 47.6.2 for details. This parameter cannot be set for TOAST tables. |
Tables and materialized views | |
| vacuum_index_cleanupvacuum_index_cleanup Forces or disables index cleanup when VACUUM is run on this table. The default value is AUTO . With OFF , index cleanup is disabled, with ON it is enabled, and with AUTO a decision is made dynamically, each time VACUUM runs. The dynamic behavior allows VACUUM to avoid needlessly scanning indexes to remove very few dead tuples. Forcibly disabling all index cleanup can speed up VACUUM very significantly, but may also lead to severely bloated indexes if table modifications are frequent. The INDEX_CLEANUP parameter of VACUUM , if specified, overrides the value of this option. |
Tables and materialized views | |
| vacuum_max_eager_freeze_failure_ratevacuum_max_eager_freeze_failure_rate Per-table value for vacuum_max_eager_freeze_failure_rate parameter. |
Tables and materialized views | |
| vacuum_truncatevacuum_truncate Per-table value for vacuum_truncate parameter. The TRUNCATE parameter of VACUUM , if specified, overrides the value of this option. |
Tables and materialized views | |
| check_optioncheck_option This parameter may be either local or cascaded , and is equivalent to specifying WITH [ CASCADED | LOCAL ] CHECK OPTION (see below). |
View options | |
| security_barriersecurity_barrier This should be used if the view is intended to provide row-level security. See Section 39.5 for full details. |
View options | |
| security_invokersecurity_invoker This option causes the underlying base relations to be checked against the privileges of the user of the view rather than the view owner. See the notes below for full details. |
View options |
RecordedFirst recordedInterface or attribute changeNo longer recorded
Squares indicate presence in sampled builds, not first introduction. Select a square for the same-version definition and sources.
Reading this collection
Set object options with CREATE WITH or ALTER SET. Defaults, inheritance and rebuild requirements depend on the object and version. Global configuration defaults are not explicit relation-option defaults.