↑↓ select ↵ open ⌫ change scope Open full search

PG.CENTER connects PostgreSQL documentation, reference, and ecosystem knowledge. Maintained by Pigsty.

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 purposeGroupVersion 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.