Tune it with confidence
What each parameter does, its default, when a change takes effect, and how to tune it safely for production.
Archiving
Asynchronous I/O
Authentication
password_encryption — PostgreSQL Configuration Parameter
Hashing algorithm used when storing passwords.
default: scram-sha-256ssl — PostgreSQL Configuration Parameter
Enables SSL/TLS connections.
default: offssl_min_protocol_version — PostgreSQL Configuration Parameter
Minimum TLS protocol version accepted.
default: TLSv1.2Autovacuum
autovacuum — PostgreSQL Configuration Parameter
Master switch for the autovacuum daemon.
default: onautovacuum_freeze_max_age — PostgreSQL Configuration Parameter
Table age that forces an anti-wraparound autovacuum.
default: 200000000autovacuum_max_workers — PostgreSQL Configuration Parameter
Maximum concurrent autovacuum worker processes.
default: 3autovacuum_naptime — PostgreSQL Configuration Parameter
Delay between autovacuum runs per database.
default: 1minautovacuum_vacuum_cost_delay — PostgreSQL Configuration Parameter
Throttling pause for autovacuum I/O.
default: 2msautovacuum_vacuum_cost_limit — PostgreSQL Configuration Parameter
I/O cost budget before autovacuum sleeps (-1 = use vacuum_cost_limit).
default: -1autovacuum_vacuum_insert_scale_factor — PostgreSQL Configuration Parameter
Insert-driven autovacuum threshold fraction (PG13+).
default: 0.2autovacuum_vacuum_scale_factor — PostgreSQL Configuration Parameter
Fraction of table that must be dead before autovacuum runs.
default: 0.2autovacuum_vacuum_threshold — PostgreSQL Configuration Parameter
Minimum dead tuples before autovacuum considers a table.
default: 50Background Writer
Checkpoints
checkpoint_completion_target — PostgreSQL Configuration Parameter
Fraction of the interval over which to spread checkpoint writes.
default: 0.9checkpoint_timeout — PostgreSQL Configuration Parameter
Maximum time between automatic checkpoints.
default: 5minmax_wal_size — PostgreSQL Configuration Parameter
Soft upper limit of WAL between automatic checkpoints.
default: 1GBmin_wal_size — PostgreSQL Configuration Parameter
WAL kept and recycled rather than removed.
default: 80MBClient Connection Defaults
bytea_output — PostgreSQL configuration parameter
Sets the output format for values of type bytea. Valid values are hex (the default) and escape (the traditional PostgreSQL…
check_function_bodies — PostgreSQL configuration parameter
This parameter is normally on. When set to off, it disables validation of the routine body string during createfunction and…
client_min_messages — PostgreSQL configuration parameter
Controls which message levels are sent to the client. Valid values are DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, LOG, NOTICE, WARNING,…
default: NOTICEcreaterole_self_grant — PostgreSQL configuration parameter
If a user who has CREATEROLE but not SUPERUSER creates a role, and if this is set to a non-empty…
default: an empty string, which disables the featuredefault_table_access_method — PostgreSQL configuration parameter
This parameter specifies the default table access method to use when creating tables or materialized views if the CREATE command…
default: heapdefault_tablespace — PostgreSQL configuration parameter
This variable specifies the default tablespace in which to create objects (tables and indexes) when a CREATE command does not…
default_text_search_config — PostgreSQL configuration parameter
Selects the text search configuration that is used by those variants of the text search functions that do not have…
default_toast_compression — PostgreSQL configuration parameter
This variable sets the default TOAST compression method for values of compressible columns. (This can be overridden for individual columns…
default: lz4 (if availabledefault_transaction_deferrable — PostgreSQL configuration parameter
When running at the serializable isolation level, a deferrable read-only SQL transaction may be delayed before it is allowed to…
default: offdynamic_library_path — PostgreSQL configuration parameter
If a dynamically loadable module needs to be opened and the file name specified in the CREATE FUNCTION or LOAD…
event_triggers — PostgreSQL configuration parameter
Allow temporarily disabling execution of event triggers in order to troubleshoot and repair faulty event triggers. All event triggers will…
extension_control_path — PostgreSQL configuration parameter
A path to search for extensions, specifically extension control files (name.control). The remaining extension script and secondary control files are…
extra_float_digits — PostgreSQL configuration parameter
This parameter adjusts the number of digits used for textual output of floating-point values, including float4, float8, and geometric data…
gin_fuzzy_search_limit — PostgreSQL configuration parameter
Soft upper limit of the size of the set returned by GIN index scans. For more information see gin_tips.
gin_pending_list_limit — PostgreSQL configuration parameter
Sets the maximum size of a GIN index's pending list, which is used when fastupdate is enabled. If the list…
default: four megabytes (4MBicu_validation_level — PostgreSQL configuration parameter
When ICU locale validation problems are encountered, controls which message level is used to report the problem. Valid values are…
default: WARNINGjit_provider — PostgreSQL configuration parameter
This variable is the name of the JIT provider library to be used (see jit_pluggable). The default is llvmjit. This…
default: llvmjitlc_messages — PostgreSQL configuration parameter
Sets the language in which messages are displayed. Acceptable values are system-dependent; see locale for more information. If this variable…
lc_monetary — PostgreSQL configuration parameter
Sets the locale to use for formatting monetary amounts, for example with the to_char family of functions. Acceptable values are…
lc_numeric — PostgreSQL configuration parameter
Sets the locale to use for formatting numbers, for example with the to_char family of functions. Acceptable values are system-dependent;…
lc_time — PostgreSQL configuration parameter
Sets the locale to use for formatting dates and times, for example with the to_char family of functions. Acceptable values…
local_preload_libraries — PostgreSQL configuration parameter
This variable specifies one or more shared libraries that are to be preloaded at connection start. It contains a comma-separated…
restrict_nonsystem_relation_kind — PostgreSQL configuration parameter
Set relation kinds for which access to non-system relations is prohibited. The value takes the form of a comma-separated list…
row_security — PostgreSQL configuration parameter
This variable controls whether to raise an error in lieu of applying a row security policy. When set to on,…
default: onsession_preload_libraries — PostgreSQL configuration parameter
This variable specifies one or more shared libraries that are to be preloaded at connection start. It contains a comma-separated…
session_replication_role — PostgreSQL configuration parameter
Controls firing of replication-related triggers and rules for the current session. Possible values are origin (the default), replica and local.…
temp_tablespaces — PostgreSQL configuration parameter
This variable specifies tablespaces in which to create temporary objects (temp tables and indexes on temp tables) when a CREATE…
timezone_abbreviations — PostgreSQL configuration parameter
Sets the collection of additional time zone abbreviations that will be accepted by the server for datetime input (beyond any…
default: 'Default', which is a collection that works in most of the worldtransaction_deferrable — PostgreSQL configuration parameter
This parameter reflects the current transaction's deferrability status. At the beginning of each transaction, it is set to the current…
transaction_isolation — PostgreSQL configuration parameter
This parameter reflects the current transaction's isolation level. At the beginning of each transaction, it is set to the current…
transaction_read_only — PostgreSQL configuration parameter
This parameter reflects the current transaction's read-only status. At the beginning of each transaction, it is set to the current…
transaction_timeout — PostgreSQL configuration parameter
Terminate any session that spans longer than the specified amount of time in a transaction. The limit applies both to…
xmlbinary — PostgreSQL configuration parameter
Sets how binary values are to be encoded in XML. This applies for example when bytea values are converted to…
default: base64xmloption — PostgreSQL configuration parameter
Sets whether DOCUMENT or CONTENT is implicit when converting between XML and character string values. See datatype_xml for a description…
default: CONTENTClient Defaults
client_encoding — PostgreSQL Configuration Parameter
Character set used for client communication.
default: UTF8default_transaction_isolation — PostgreSQL Configuration Parameter
Default isolation level for new transactions.
default: read committeddefault_transaction_read_only — PostgreSQL Configuration Parameter
Make new transactions read-only by default.
default: offidle_in_transaction_session_timeout — PostgreSQL Configuration Parameter
Terminate sessions idle inside an open transaction.
default: 0idle_session_timeout — PostgreSQL Configuration Parameter
Terminate sessions idle outside any transaction (PG14+).
default: 0lock_timeout — PostgreSQL Configuration Parameter
Abort a statement waiting too long for a lock.
default: 0search_path — PostgreSQL Configuration Parameter
Schema search order for unqualified names.
default: "$user", publicstatement_timeout — PostgreSQL Configuration Parameter
Abort any statement running longer than this.
default: 0timezone — PostgreSQL Configuration Parameter
Time zone for displaying and interpreting timestamps.
default: GMTConnections
authentication_timeout — PostgreSQL Configuration Parameter
Maximum time to complete client authentication.
default: 1minlisten_addresses — PostgreSQL Configuration Parameter
TCP/IP addresses the server listens on.
default: 'localhost'max_connections — PostgreSQL Configuration Parameter
Maximum number of concurrent client connections.
default: 100port — PostgreSQL Configuration Parameter
TCP port the server listens on.
default: 5432reserved_connections — PostgreSQL Configuration Parameter
Slots reserved for roles with the RESERVED_CONNECTION privilege (PG16+).
default: 0superuser_reserved_connections — PostgreSQL Configuration Parameter
Connection slots reserved for superusers.
default: 3tcp_keepalives_idle — PostgreSQL Configuration Parameter
Idle time before TCP keepalive probes start.
default: 0unix_socket_directories — PostgreSQL Configuration Parameter
Directories for Unix-domain socket files.
default: '/tmp'Connections and Authentication
bonjour — PostgreSQL configuration parameter
Enables advertising the server's existence via Bonjour. The default is off. This parameter can only be set at server start.
default: offbonjour_name — PostgreSQL configuration parameter
Specifies the Bonjour service name. The computer name is used if this parameter is set to the empty string ''…
client_connection_check_interval — PostgreSQL configuration parameter
Sets the time interval between optional checks that the client is still connected, while running queries. The check is performed…
gss_accept_delegation — PostgreSQL configuration parameter
Sets whether GSSAPI delegation should be accepted from the client. The default is off meaning credentials from the client will…
default: off meaning credentials from the client will not be acceptedkrb_caseins_users — PostgreSQL configuration parameter
Sets whether GSSAPI user names should be treated case-insensitively. The default is off (case sensitive). This parameter can only be…
default: off (case sensitivekrb_server_keyfile — PostgreSQL configuration parameter
Sets the location of the server's Kerberos key file. The default is FILE:/usr/local/pgsql/etc/krb5.keytab (where the directory part is whatever was…
default: FILE:/usr/local/pgsql/etc/krb5md5_password_warnings — PostgreSQL configuration parameter
Controls whether a WARNING about MD5 password deprecation is produced upon successful MD5 password authentication or when a CREATE ROLE…
default: onoauth_validator_libraries — PostgreSQL configuration parameter
Sets the library/libraries to use for validating OAuth connection tokens. If only one validator library is provided, it will be…
password_expiration_warning_threshold — PostgreSQL configuration parameter
When this parameter is greater than zero, the server will emit a WARNING upon successful password authentication if less than…
default: 7 daysscram_iterations — PostgreSQL configuration parameter
The number of computational iterations to be performed when encrypting a password using SCRAM-SHA-256. The default is 4096. A higher…
default: 4096ssl_ca_file — PostgreSQL configuration parameter
Specifies the name of the file containing the SSL server certificate authority (CA). Relative paths are relative to the data…
ssl_cert_file — PostgreSQL configuration parameter
Specifies the name of the file containing the SSL server certificate. Relative paths are relative to the data directory. This…
default: serverssl_ciphers — PostgreSQL configuration parameter
Specifies a list of SSL ciphers that are allowed by connections using TLS version 1.2 and lower, see ssl_tls13_ciphers for…
default: HIGH:MEDIUM:+3DES:!aNULLssl_crl_dir — PostgreSQL configuration parameter
Specifies the name of the directory containing the SSL client certificate revocation list (CRL). Relative paths are relative to the…
default: empty, meaning no CRLs are used (unless ssl_crl_file is setssl_crl_file — PostgreSQL configuration parameter
Specifies the name of the file containing the SSL client certificate revocation list (CRL). Relative paths are relative to the…
default: empty, meaning no CRL file is loaded (unless ssl_crl_dir is setssl_dh_params_file — PostgreSQL configuration parameter
Specifies the name of the file containing Diffie-Hellman parameters used for so-called ephemeral DH family of SSL ciphers. The default…
default: empty, in which case compiled-in default DH parameters usedssl_groups — PostgreSQL configuration parameter
Specifies the named group to use for TLS key exchange. It needs to be supported by all clients that connect.…
default: X25519:prime256v1ssl_key_file — PostgreSQL configuration parameter
Specifies the name of the file containing the SSL server private key. Relative paths are relative to the data directory.…
default: serverssl_max_protocol_version — PostgreSQL configuration parameter
Sets the maximum SSL/TLS protocol version to use. Valid values are as for ssl_min_protocol_version, with addition of an empty string,…
default: to allow any versionssl_passphrase_command — PostgreSQL configuration parameter
Sets an external command to be invoked when a passphrase for decrypting an SSL file such as a private key…
ssl_passphrase_command_supports_reload — PostgreSQL configuration parameter
This parameter determines whether the passphrase command set by ssl_passphrase_command will also be called during a configuration reload if a…
ssl_prefer_server_ciphers — PostgreSQL configuration parameter
Specifies whether to use the server's SSL cipher preferences, rather than the client's. This parameter can only be set in…
default: onssl_sni — PostgreSQL configuration parameter
Enables SNI configuration for SSL connections. When set to on host configuration from hosts_file is used, see ssl_sni for more…
default: offssl_tls13_ciphers — PostgreSQL configuration parameter
Specifies a list of cipher suites that are allowed by connections using TLS version 1.3. Multiple cipher suites can be…
tcp_keepalives_count — PostgreSQL configuration parameter
Specifies the number of TCP keepalive messages that can be lost before the server's connection to the client is considered…
tcp_keepalives_interval — PostgreSQL configuration parameter
Specifies the amount of time after which a TCP keepalive message that has not been acknowledged by the client should…
tcp_user_timeout — PostgreSQL configuration parameter
Specifies the amount of time that transmitted data may remain unacknowledged before the TCP connection is forcibly closed. If this…
unix_socket_group — PostgreSQL configuration parameter
Sets the owning group of the Unix-domain socket(s). (The owning user of the sockets is always the user that starts…
unix_socket_permissions — PostgreSQL configuration parameter
Sets the access permissions of the Unix-domain socket(s). Unix-domain sockets use the usual Unix file system permission set. The parameter…
Developer Options
allow_in_place_tablespaces — PostgreSQL configuration parameter
Allows tablespaces to be created as directories inside pg_tblspc, when an empty location string is provided to the CREATE TABLESPACE…
allow_system_table_mods — PostgreSQL configuration parameter
Allows modification of the structure of system tables as well as certain other risky actions on system tables. This is…
backtrace_functions — PostgreSQL configuration parameter
This parameter contains a comma-separated list of C function names. If an error is raised and the name of the…
debug_copy_parse_plan_trees — PostgreSQL configuration parameter
Enabling this forces all parse and plan trees to be passed through copyObject(), to facilitate catching errors and omissions in…
default: offdebug_deadlocks — PostgreSQL configuration parameter
If set, dumps information about all current locks when a deadlock timeout occurs.
debug_discard_caches — PostgreSQL configuration parameter
When set to 1, each system catalog cache entry is invalidated at the first possible opportunity, whether or not anything…
debug_io_direct — PostgreSQL configuration parameter
Ask the kernel to minimize caching effects for relation data and WAL files using O_DIRECT (most Unix-like systems), F_NOCACHE (macOS)…
debug_logical_replication_streaming — PostgreSQL configuration parameter
The allowed values are buffered and immediate. The default is buffered. This parameter is intended to be used to test…
default: buffereddebug_parallel_query — PostgreSQL configuration parameter
Allows the use of parallel queries for testing purposes even in cases where no performance benefit is expected. The allowed…
debug_raw_expression_coverage_test — PostgreSQL configuration parameter
Enabling this forces all raw parse trees for DML statements to be scanned by raw_expression_tree_walker(), to facilitate catching errors and…
default: offdebug_write_read_parse_plan_trees — PostgreSQL configuration parameter
Enabling this forces all parse and plan trees to be passed through outfuncs.c/readfuncs.c, to facilitate catching errors and omissions in…
default: offignore_checksum_failure — PostgreSQL configuration parameter
Only has effect if app_initdb_data_checksums are enabled.
ignore_invalid_pages — PostgreSQL configuration parameter
If set to off (the default), detection of WAL records having references to invalid pages during recovery causes PostgreSQL to…
ignore_system_indexes — PostgreSQL configuration parameter
Ignore system indexes when reading system tables (but still update the indexes when modifying the tables). This is useful when…
jit_debugging_support — PostgreSQL configuration parameter
If LLVM has the required functionality, register generated functions with GDB. This makes debugging easier. The default setting is off.…
jit_dump_bitcode — PostgreSQL configuration parameter
Writes the generated LLVM IR out to the file system, inside data_directory. This is only useful for working on the…
jit_expressions — PostgreSQL configuration parameter
Determines whether expressions are JIT compiled, when JIT compilation is activated (see jit_decision). The default is on.
default: onjit_profiling_support — PostgreSQL configuration parameter
If LLVM has the required functionality, emit the data needed to allow perf to profile functions generated by JIT. This…
jit_tuple_deforming — PostgreSQL configuration parameter
Determines whether tuple deforming is JIT compiled, when JIT compilation is activated (see jit_decision). The default is on.
default: onlog_btree_build_stats — PostgreSQL configuration parameter
If set, logs system resource usage statistics (memory and CPU) on various B-tree operations.
post_auth_delay — PostgreSQL configuration parameter
The amount of time to delay when a new server process is started, after it conducts the authentication procedure. This…
pre_auth_delay — PostgreSQL configuration parameter
The amount of time to delay just after a new server process is forked, before it conducts the authentication procedure.…
remove_temp_files_after_crash — PostgreSQL configuration parameter
When set to on, which is the default, PostgreSQL will automatically remove temporary files after a backend crash. If disabled,…
send_abort_for_crash — PostgreSQL configuration parameter
By default, after a backend crash the postmaster will stop remaining child processes by sending them SIGQUIT signals, which permits…
send_abort_for_kill — PostgreSQL configuration parameter
By default, after attempting to stop a child process with SIGQUIT, the postmaster will wait five seconds and then send…
trace_lock_oidmin — PostgreSQL configuration parameter
If set, do not trace locks for tables below this OID (used to avoid output on system tables).
trace_lock_table — PostgreSQL configuration parameter
Unconditionally trace locks on this table (OID).
trace_locks — PostgreSQL configuration parameter
If on, emit information about lock usage. Information dumped includes the type of lock operation, the type of lock and…
trace_lwlocks — PostgreSQL configuration parameter
If on, emit information about lightweight lock usage. Lightweight locks are intended primarily to provide mutual exclusion of access to…
trace_notify — PostgreSQL configuration parameter
Generates a great amount of debugging output for the LISTEN and NOTIFY commands. client_min_messages or log_min_messages must be DEBUG1 or…
trace_sort — PostgreSQL configuration parameter
If on, emit information about resource usage during sort operations.
trace_userlocks — PostgreSQL configuration parameter
If on, emit information about user lock usage. Output is the same as for trace_locks, only for advisory locks.
wal_consistency_checking — PostgreSQL configuration parameter
This parameter is intended to be used to check for bugs in the WAL redo routines. When enabled, full-page images…
wal_debug — PostgreSQL configuration parameter
If on, emit WAL-related debugging output. This parameter is only available if the WAL_DEBUG macro was defined when PostgreSQL was…
zero_damaged_pages — PostgreSQL configuration parameter
Detection of a damaged page header normally causes PostgreSQL to report an error, aborting the current transaction. Setting zero_damaged_pages to…
Error Handling
data_sync_retry — PostgreSQL Configuration Parameter
Whether to retry after an fsync failure instead of panicking.
default: offexit_on_error — PostgreSQL configuration parameter
If on, any error will terminate the current session. By default, this is set to off, so that only FATAL…
recovery_init_sync_method — PostgreSQL configuration parameter
When set to fsync, which is the default, PostgreSQL will recursively open and synchronize all files in the data directory…
restart_after_crash — PostgreSQL Configuration Parameter
Automatically restart after a backend crash.
default: onError Reporting and Logging
application_name — PostgreSQL configuration parameter
The application_name can be any string of less than NAMEDATALEN characters (64 characters in a standard build). It is typically…
cluster_name — PostgreSQL configuration parameter
Sets a name that identifies this database cluster (instance) for various purposes. The cluster name appears in the process title…
debug_pretty_print — PostgreSQL configuration parameter
When set, debug_pretty_print indents the messages produced by debug_print_raw_parse, debug_print_parse, debug_print_rewritten, or debug_print_plan. This results in more readable but much…
debug_print_raw_parse — PostgreSQL configuration parameter
These parameters enable various debugging output to be emitted. When set, they print the resulting raw parse tree, the parse…
event_source — PostgreSQL configuration parameter
When logging to event log is enabled, this parameter determines the program name used to identify PostgreSQL messages in the…
default: PostgreSQLlog_autoanalyze_min_duration — PostgreSQL configuration parameter
Causes analyze action executed by autovacuum to be logged if it ran for at least the specified amount of time.…
default: 10minlog_connections — PostgreSQL configuration parameter
Causes aspects of each connection to the server to be logged. The default is the empty string, '', which disables…
default: the empty string, '', which disables all connection logginglog_destination — PostgreSQL configuration parameter
PostgreSQL supports several methods for logging server messages, including stderr, csvlog, jsonlog, and syslog. On Windows, eventlog is also supported.…
default: to log to stderr onlylog_directory — PostgreSQL configuration parameter
When logging_collector is enabled, this parameter determines the directory in which log files will be created. It can be specified…
default: loglog_disconnections — PostgreSQL configuration parameter
Causes session terminations to be logged. The log output provides information similar to log_connections, plus the duration of the session.…
default: offlog_duration — PostgreSQL configuration parameter
Causes the duration of every completed statement to be logged. The default is off. Only superusers and users with the…
default: offlog_error_verbosity — PostgreSQL configuration parameter
Controls the amount of detail written in the server log for each message that is logged. Valid values are TERSE,…
log_file_mode — PostgreSQL configuration parameter
On Unix systems this parameter sets the permissions for log files when logging_collector is enabled. (On Microsoft Windows this parameter…
log_filename — PostgreSQL configuration parameter
When logging_collector is enabled, this parameter sets the file names of the created log files. The value is treated as…
default: postgresql-%Y-%m-%d_%H%M%Slog_hostname — PostgreSQL configuration parameter
By default, connection log messages only show the IP address of the connecting host. Turning this parameter on causes logging…
log_lock_failures — PostgreSQL configuration parameter
Controls whether a detailed log message is produced when a lock acquisition fails. This is useful for analyzing the causes…
default: offlog_min_duration_sample — PostgreSQL configuration parameter
Allows sampling the duration of completed statements that ran for at least the specified amount of time. This produces the…
log_min_error_statement — PostgreSQL configuration parameter
Controls which SQL statements that cause an error condition are recorded in the server log. The current SQL statement is…
log_min_messages — PostgreSQL configuration parameter
Controls which message levels are written to the server log. The value is a comma-separated list of zero or more…
default: WARNING, which applies that level to all process typeslog_parameter_max_length — PostgreSQL configuration parameter
If greater than zero, each bind parameter value logged with a non-error statement-logging message is trimmed to this many bytes.…
log_parameter_max_length_on_error — PostgreSQL configuration parameter
If greater than zero, each bind parameter value reported in error messages is trimmed to this many bytes. Zero (the…
log_recovery_conflict_waits — PostgreSQL configuration parameter
Controls whether a log message is produced when the startup process waits longer than deadlock_timeout for recovery conflicts. This is…
default: offlog_replication_commands — PostgreSQL configuration parameter
Causes each replication command and walsender process's replication slot acquisition/release to be logged in the server log. See protocol_replication for…
default: offlog_rotation_age — PostgreSQL configuration parameter
When logging_collector is enabled, this parameter determines the maximum amount of time to use an individual log file, after which…
default: 24 hourslog_rotation_size — PostgreSQL configuration parameter
When logging_collector is enabled, this parameter determines the maximum size of an individual log file. After this amount of data…
default: 10 megabyteslog_startup_progress_interval — PostgreSQL configuration parameter
Sets the amount of time after which the startup process will log a message about a long-running operation that is…
default: 10 secondslog_statement_sample_rate — PostgreSQL configuration parameter
Determines the fraction of statements with duration exceeding log_min_duration_sample that will be logged. Sampling is stochastic, for example 0.5 means…
default: 1log_timezone — PostgreSQL configuration parameter
Sets the time zone used for timestamps written in the server log. Unlike timezone, this value is cluster-wide, so that…
log_transaction_sample_rate — PostgreSQL configuration parameter
Sets the fraction of transactions whose statements are all logged, in addition to statements logged for other reasons. It applies…
default: 0, meaning not to log statements from any additional transactionslog_truncate_on_rotation — PostgreSQL configuration parameter
When logging_collector is enabled, this parameter will cause PostgreSQL to truncate (overwrite), rather than append to, any existing log file…
syslog_facility — PostgreSQL configuration parameter
When logging to syslog is enabled, this parameter determines the syslog “facility” to be used. You can choose from LOCAL0,…
default: LOCAL0syslog_ident — PostgreSQL configuration parameter
When logging to syslog is enabled, this parameter determines the program name used to identify PostgreSQL messages in syslog logs.…
default: postgressyslog_sequence_numbers — PostgreSQL configuration parameter
When logging to syslog and this is on (the default), then each message will be prefixed by an increasing sequence…
syslog_split_messages — PostgreSQL configuration parameter
When logging to syslog is enabled, this parameter determines how messages are delivered to syslog. When on (the default), messages…
update_process_title — PostgreSQL configuration parameter
Enables updating of the process title every time a new SQL command is received by the server. This setting defaults…
File Locations
config_file — PostgreSQL configuration parameter
Specifies the main server configuration file (customarily called postgresql.conf). This parameter can only be set on the postgres command line.
data_directory — PostgreSQL configuration parameter
Specifies the directory to use for data storage. This parameter can only be set at server start.
external_pid_file — PostgreSQL configuration parameter
Specifies the name of an additional process-ID (PID) file that the server should create for use by server administration programs.…
hba_file — PostgreSQL configuration parameter
Specifies the configuration file for host-based authentication (customarily called pg_hba.conf). This parameter can only be set at server start.
hosts_file — PostgreSQL configuration parameter
Specifies the configuration file for host-based SSL configuration (customarily called pg_hosts.conf). This parameter can only be set at server start.…
ident_file — PostgreSQL configuration parameter
Specifies the configuration file for user name mapping (customarily called pg_ident.conf). This parameter can only be set at server start.…
Lock Management
max_pred_locks_per_page — PostgreSQL configuration parameter
This controls how many rows on a single page can be predicate-locked before the lock is promoted to covering the…
default: 2max_pred_locks_per_relation — PostgreSQL configuration parameter
This controls how many pages or tuples of a single relation can be predicate-locked before the lock is promoted to…
default: -2, which keeps the behavior from previous versions of PostgreSQLLocks
deadlock_timeout — PostgreSQL Configuration Parameter
Wait before checking for a deadlock.
default: 1smax_locks_per_transaction — PostgreSQL Configuration Parameter
Average lock slots reserved per transaction.
default: 64max_pred_locks_per_transaction — PostgreSQL Configuration Parameter
Predicate-lock table sizing for SERIALIZABLE.
default: 64Logging
log_autovacuum_min_duration — PostgreSQL Configuration Parameter
Log autovacuum actions that run at least this long.
default: 10minlog_checkpoints — PostgreSQL Configuration Parameter
Log each checkpoint with timing and buffer stats.
default: onlog_line_prefix — PostgreSQL Configuration Parameter
Printf-style prefix on each log line.
default: '%m [%p] 'log_lock_waits — PostgreSQL Configuration Parameter
Log sessions that wait longer than deadlock_timeout for a lock.
default: offlog_min_duration_statement — PostgreSQL Configuration Parameter
Log statements running at least this long.
default: -1log_statement — PostgreSQL Configuration Parameter
Which statement kinds to log (none/ddl/mod/all).
default: nonelog_temp_files — PostgreSQL Configuration Parameter
Log temporary files at least this large.
default: -1logging_collector — PostgreSQL Configuration Parameter
Capture stderr into managed, rotated log files.
default: offMemory
autovacuum_work_mem — PostgreSQL Configuration Parameter
Memory each autovacuum worker may use (-1 = use maintenance_work_mem).
default: -1hash_mem_multiplier — PostgreSQL Configuration Parameter
Multiplier applied to work_mem for hash-based operations.
default: 2.0huge_pages — PostgreSQL Configuration Parameter
Use OS huge pages for shared memory.
default: trymaintenance_work_mem — PostgreSQL Configuration Parameter
Memory for maintenance operations (VACUUM, CREATE INDEX).
default: 64MBmax_prepared_transactions — PostgreSQL Configuration Parameter
Max simultaneous two-phase-commit prepared transactions.
default: 0shared_buffers — PostgreSQL Configuration Parameter
Shared memory used for the buffer cache.
default: 128MBtemp_buffers — PostgreSQL Configuration Parameter
Per-session memory for temporary tables.
default: 8MBwork_mem — PostgreSQL Configuration Parameter
Memory per sort/hash operation before spilling to disk.
default: 4MBParallelism
max_parallel_workers — PostgreSQL Configuration Parameter
Total parallel workers available cluster-wide.
default: 8max_parallel_workers_per_gather — PostgreSQL Configuration Parameter
Max parallel workers a single Gather node can use.
default: 2max_worker_processes — PostgreSQL Configuration Parameter
Total background worker processes the cluster can run.
default: 8Preset
Preset Options
block_size — PostgreSQL configuration parameter
Reports the size of a disk block. It is determined by the value of BLCKSZ when building the server. The…
default: 8192 bytesdata_checksums — PostgreSQL configuration parameter
Reports the state of data checksums for this cluster. Possible values are on, off, inprogress-on and inprogress-off. See checksums for…
data_directory_mode — PostgreSQL configuration parameter
On Unix systems this parameter reports the permissions the data directory (defined by data_directory) had at server startup. (On Microsoft…
debug_assertions — PostgreSQL configuration parameter
Reports whether PostgreSQL has been built with assertions enabled. That is the case if the macro USE_ASSERT_CHECKING is defined when…
debug_exec_backend — PostgreSQL configuration parameter
Reports whether PostgreSQL has been built with EXEC_BACKEND enabled. That is the case on Windows or if the macro EXEC_BACKEND…
effective_wal_level — PostgreSQL configuration parameter
Reports the actual WAL logging level currently in effect in the system. This parameter shares the same set of values…
huge_pages_status — PostgreSQL configuration parameter
Reports the state of huge pages in the current instance: on, off, or unknown (if displayed with postgres -C). This…
in_hot_standby — PostgreSQL configuration parameter
Reports whether the server is currently in hot standby mode. When this is on, all transactions are forced to be…
integer_datetimes — PostgreSQL configuration parameter
Reports whether PostgreSQL was built with support for 64-bit-integer dates and times. As of PostgreSQL 10, this is always on.
max_function_args — PostgreSQL configuration parameter
Reports the maximum number of function arguments. It is determined by the value of FUNC_MAX_ARGS when building the server. The…
default: 100 argumentsmax_identifier_length — PostgreSQL configuration parameter
Reports the maximum identifier length. It is determined as one less than the value of NAMEDATALEN when building the server.…
max_index_keys — PostgreSQL configuration parameter
Reports the maximum number of index keys. It is determined by the value of INDEX_MAX_KEYS when building the server. The…
default: 32 keysnum_os_semaphores — PostgreSQL configuration parameter
Reports the number of semaphores that are needed for the server based on the configured number of allowed connections (max_connections),…
segment_size — PostgreSQL configuration parameter
Reports the number of blocks (pages) that can be stored within a file segment. It is determined by the value…
server_encoding — PostgreSQL configuration parameter
Reports the database encoding (character set). It is determined when the database is created. Ordinarily, clients need only be concerned…
server_version — PostgreSQL configuration parameter
Reports the version number of the server. It is determined by the value of PG_VERSION when building the server.
server_version_num — PostgreSQL configuration parameter
Reports the version number of the server as an integer. It is determined by the value of PG_VERSION_NUM when building…
shared_memory_size — PostgreSQL configuration parameter
Reports the size of the main shared memory area, rounded up to the nearest megabyte.
shared_memory_size_in_huge_pages — PostgreSQL configuration parameter
Reports the number of huge pages that are needed for the main shared memory area based on the specified huge_page_size.…
ssl_library — PostgreSQL configuration parameter
Reports the name of the SSL library that this PostgreSQL server was built with (even if SSL is not currently…
wal_block_size — PostgreSQL configuration parameter
Reports the size of a WAL disk block. It is determined by the value of XLOG_BLCKSZ when building the server.…
default: 8192 byteswal_segment_size — PostgreSQL configuration parameter
Reports the size of write ahead log segments. The default value is 16MB. See wal_configuration for more information.
default: 16MBQuery Planner
default_statistics_target — PostgreSQL Configuration Parameter
Default sampling detail for ANALYZE statistics.
default: 100effective_cache_size — PostgreSQL Configuration Parameter
Planner's estimate of total cache available (OS + shared_buffers).
default: 4GBeffective_io_concurrency — PostgreSQL Configuration Parameter
Number of concurrent I/O requests the planner assumes (prefetch).
default: 1jit — PostgreSQL Configuration Parameter
Enable Just-In-Time compilation of expressions.
default: onjoin_collapse_limit — PostgreSQL Configuration Parameter
Max FROM items before the planner stops reordering joins.
default: 8random_page_cost — PostgreSQL Configuration Parameter
Planner cost of a non-sequential page fetch.
default: 4.0seq_page_cost — PostgreSQL Configuration Parameter
Planner cost of a sequential page fetch (the baseline).
default: 1.0Query Planning
constraint_exclusion — PostgreSQL configuration parameter
Controls the query planner's use of table constraints to optimize queries. The allowed values of constraint_exclusion are on (examine constraints…
cpu_index_tuple_cost — PostgreSQL configuration parameter
Sets the planner's estimate of the cost of processing each index entry during an index scan. The default is 0.005.
default: 0cpu_operator_cost — PostgreSQL configuration parameter
Sets the planner's estimate of the cost of processing each operator or function executed during a query. The default is…
default: 0cpu_tuple_cost — PostgreSQL configuration parameter
Sets the planner's estimate of the cost of processing each row during a query. The default is 0.01.
default: 0cursor_tuple_fraction — PostgreSQL configuration parameter
Sets the planner's estimate of the fraction of a cursor's rows that will be retrieved. The default is 0.1. Smaller…
default: 0enable_async_append — PostgreSQL configuration parameter
Enables or disables the query planner's use of async-aware append plan types. The default is on.
default: onenable_bitmapscan — PostgreSQL configuration parameter
Enables or disables the query planner's use of bitmap-scan plan types. The default is on.
default: onenable_distinct_reordering — PostgreSQL configuration parameter
Enables or disables the query planner's ability to reorder DISTINCT keys to match the input path's pathkeys. The default is…
default: onenable_eager_aggregate — PostgreSQL configuration parameter
Enables or disables the query planner's ability to partially push aggregation past a join, and finalize it once all the…
default: onenable_gathermerge — PostgreSQL configuration parameter
Enables or disables the query planner's use of gather merge plan types. The default is on.
default: onenable_group_by_reordering — PostgreSQL configuration parameter
Controls if the query planner will produce a plan which will provide GROUP BY keys sorted in the order of…
default: onenable_hashagg — PostgreSQL configuration parameter
Enables or disables the query planner's use of hashed aggregation plan types. The default is on.
default: onenable_hashjoin — PostgreSQL configuration parameter
Enables or disables the query planner's use of hash-join plan types. The default is on.
default: onenable_incremental_sort — PostgreSQL configuration parameter
Enables or disables the query planner's use of incremental sort steps. The default is on.
default: onenable_indexonlyscan — PostgreSQL configuration parameter
Enables or disables the query planner's use of index-only-scan plan types (see indexes_index_only_scans). The default is on. The enable_indexscan setting…
default: onenable_indexscan — PostgreSQL configuration parameter
Enables or disables the query planner's use of index-scan and index-only-scan plan types. The default is on. Also see enable_indexonlyscan.
default: onenable_material — PostgreSQL configuration parameter
Enables or disables the query planner's use of materialization. It is impossible to suppress materialization entirely, but turning this variable…
default: onenable_memoize — PostgreSQL configuration parameter
Enables or disables the query planner's use of memoize plans for caching results from parameterized scans inside nested-loop joins. This…
default: onenable_mergejoin — PostgreSQL configuration parameter
Enables or disables the query planner's use of merge-join plan types. The default is on.
default: onenable_nestloop — PostgreSQL configuration parameter
Enables or disables the query planner's use of nested-loop join plans. It is impossible to suppress nested-loop joins entirely, but…
default: onenable_parallel_append — PostgreSQL configuration parameter
Enables or disables the query planner's use of parallel-aware append plan types. The default is on.
default: onenable_parallel_hash — PostgreSQL configuration parameter
Enables or disables the query planner's use of hash-join plan types with parallel hash. Has no effect if hash-join plans…
default: onenable_partition_pruning — PostgreSQL configuration parameter
Enables or disables the query planner's ability to eliminate a partitioned table's partitions from query plans. This also controls the…
default: onenable_partitionwise_aggregate — PostgreSQL configuration parameter
Enables or disables the query planner's use of partitionwise grouping or aggregation, which allows grouping or aggregation on partitioned tables…
default: offenable_partitionwise_join — PostgreSQL configuration parameter
Enables or disables the query planner's use of partitionwise join, which allows a join between partitioned tables to be performed…
default: offenable_presorted_aggregate — PostgreSQL configuration parameter
Controls if the query planner will produce a plan which will provide rows which are presorted in the order required…
default: onenable_self_join_elimination — PostgreSQL configuration parameter
Enables or disables the query planner's optimization which analyses the query tree and replaces self joins with semantically equivalent single…
default: onenable_seqscan — PostgreSQL configuration parameter
Enables or disables the query planner's use of sequential scan plan types. It is impossible to suppress sequential scans entirely,…
default: onenable_sort — PostgreSQL configuration parameter
Enables or disables the query planner's use of explicit sort steps. It is impossible to suppress explicit sorts entirely, but…
default: onenable_tidscan — PostgreSQL configuration parameter
Enables or disables the query planner's use of TID scan plan types. The default is on.
default: onfrom_collapse_limit — PostgreSQL configuration parameter
The planner will merge sub-queries into upper queries if the resulting FROM list would have no more than this many…
default: eightgeqo — PostgreSQL configuration parameter
Enables or disables genetic query optimization. This is on by default. It is usually best not to turn it off…
geqo_effort — PostgreSQL configuration parameter
Controls the trade-off between planning time and query plan quality in GEQO. This variable must be an integer in the…
default: fivegeqo_generations — PostgreSQL configuration parameter
Controls the number of generations used by GEQO, that is the number of iterations of the algorithm. It must be…
geqo_pool_size — PostgreSQL configuration parameter
Controls the pool size used by GEQO, that is the number of individuals in the genetic population. It must be…
geqo_seed — PostgreSQL configuration parameter
Controls the initial value of the random number generator used by GEQO to select random paths through the join order…
geqo_selection_bias — PostgreSQL configuration parameter
Controls the selection bias used by GEQO. The selection bias is the selective pressure within the population. Values can be…
geqo_threshold — PostgreSQL configuration parameter
Use genetic query optimization to plan queries with at least this many FROM items involved. (Note that a FULL OUTER…
default: 12jit_above_cost — PostgreSQL configuration parameter
Sets the query cost above which JIT compilation is activated, if enabled (see jit). Performing JIT costs planning time but…
default: 100000jit_inline_above_cost — PostgreSQL configuration parameter
Sets the query cost above which JIT compilation attempts to inline functions and operators. Inlining adds planning time, but can…
default: 500000jit_optimize_above_cost — PostgreSQL configuration parameter
Sets the query cost above which JIT compilation applies expensive optimizations. Such optimization adds planning time, but can improve execution…
default: 500000min_eager_agg_group_size — PostgreSQL configuration parameter
Sets the minimum average group size required to consider applying eager aggregation. This helps avoid the overhead of eager aggregation…
default: 8min_parallel_index_scan_size — PostgreSQL configuration parameter
Sets the minimum amount of index data that must be scanned in order for a parallel scan to be considered.…
default: 512 kilobytes (512kBmin_parallel_table_scan_size — PostgreSQL configuration parameter
Sets the minimum amount of table data that must be scanned in order for a parallel scan to be considered.…
default: 8 megabytes (8MBparallel_setup_cost — PostgreSQL configuration parameter
Sets the planner's estimate of the cost of launching parallel worker processes. The default is 1000.
default: 1000parallel_tuple_cost — PostgreSQL configuration parameter
Sets the planner's estimate of the cost of transferring one tuple from a parallel worker process to another process. The…
default: 0plan_cache_mode — PostgreSQL configuration parameter
Prepared statements (either explicitly prepared or implicitly generated, for example by PL/pgSQL) can be executed using custom or generic plans.…
recursive_worktable_factor — PostgreSQL configuration parameter
Sets the planner's estimate of the average size of the working table of a recursive query, as a multiple of…
default: 10Replication
hot_standby — PostgreSQL Configuration Parameter
Allow read-only queries on a standby during recovery.
default: onhot_standby_feedback — PostgreSQL Configuration Parameter
Standby tells primary about its oldest snapshot to avoid query conflicts.
default: offidle_replication_slot_timeout — PostgreSQL configuration parameter
Invalidate replication slots that have remained inactive (not used by a replication connection) for longer than this duration. If this…
max_active_replication_origins — PostgreSQL configuration parameter
Specifies how many replication origins (see replication_origins) can be tracked simultaneously, effectively limiting how many logical replication subscriptions can be…
default: 10max_logical_replication_workers — PostgreSQL configuration parameter
Specifies maximum number of logical replication workers. This includes leader apply workers, parallel apply workers, and table/sequence synchronization workers.
max_parallel_apply_workers_per_subscription — PostgreSQL configuration parameter
Maximum number of parallel apply workers per subscription. This parameter controls the amount of parallelism for streaming of in-progress transactions…
max_repack_replication_slots — PostgreSQL configuration parameter
Specifies the maximum number of replication slots for use of the REPACK command. The default is 5. This parameter can…
default: 5max_replication_slots — PostgreSQL Configuration Parameter
Max replication slots (physical + logical).
default: 10max_slot_wal_keep_size — PostgreSQL configuration parameter
Specify the maximum size of WAL files that replication slots are allowed to retain in the pg_wal directory at checkpoint…
max_standby_archive_delay — PostgreSQL configuration parameter
When hot standby is active, this parameter determines how long the standby server should wait before canceling standby queries that…
default: 30 secondsmax_standby_streaming_delay — PostgreSQL Configuration Parameter
How long replay waits before canceling a conflicting standby query.
default: 30smax_sync_workers_per_subscription — PostgreSQL configuration parameter
Maximum number of synchronization workers per subscription. This parameter controls the amount of parallelism of the initial data copy for…
max_wal_senders — PostgreSQL Configuration Parameter
Max concurrent WAL sender processes (standbys + base backups).
default: 10primary_conninfo — PostgreSQL Configuration Parameter
Connection string a standby uses to stream from the primary.
default: ''primary_slot_name — PostgreSQL configuration parameter
Optionally specifies an existing replication slot to be used when connecting to the sending server via streaming replication to control…
recovery_min_apply_delay — PostgreSQL configuration parameter
By default, a standby server restores WAL records from the sending server as soon as possible. It may be useful…
default: zero, adding no delaysync_replication_slots — PostgreSQL configuration parameter
It enables a physical standby to synchronize logical failover slots from the primary server so that logical subscribers can resume…
synchronized_standby_slots — PostgreSQL configuration parameter
A comma-separated list of streaming replication standby server slot names that logical WAL sender processes will wait for. Logical WAL…
synchronous_standby_names — PostgreSQL Configuration Parameter
Standbys that must confirm commits (synchronous replication).
default: ''track_commit_timestamp — PostgreSQL configuration parameter
Record commit time of transactions. This parameter can only be set at server start. The default value is off.
default: offwal_keep_size — PostgreSQL Configuration Parameter
Minimum WAL retained for standbys (replaces wal_keep_segments).
default: 0wal_receiver_create_temp_slot — PostgreSQL configuration parameter
Specifies whether the WAL receiver process should create a temporary replication slot on the remote instance when no permanent replication…
default: offwal_receiver_status_interval — PostgreSQL configuration parameter
Specifies the minimum frequency for the WAL receiver process on the standby to send information about replication progress to the…
default: 10 secondswal_receiver_timeout — PostgreSQL configuration parameter
Terminate replication connections that are inactive for longer than this amount of time. This is useful for the receiving standby…
default: 60 secondswal_retrieve_retry_interval — PostgreSQL configuration parameter
Specifies how long the standby server should wait when WAL data is not available from any sources (streaming physical replication,…
default: 5 secondswal_sender_shutdown_timeout — PostgreSQL configuration parameter
Specifies the maximum time the server waits during shutdown for all WAL data to be replicated to the receiver. If…
wal_sender_timeout — PostgreSQL configuration parameter
Terminate replication connections that are inactive for longer than this amount of time. This is useful for the sending server…
default: 60 secondsResource Consumption
backend_flush_after — PostgreSQL configuration parameter
Whenever more than this amount of data has been written by a single backend, attempt to force the OS to…
default: 0, ibgwriter_flush_after — PostgreSQL configuration parameter
Whenever more than this amount of data has been written by the background writer, attempt to force the OS to…
default: 512kB on Linux, 0 elsewherebgwriter_lru_multiplier — PostgreSQL configuration parameter
The number of dirty buffers written in each round is based on the number of new buffers that have been…
default: 2commit_timestamp_buffers — PostgreSQL configuration parameter
Specifies the amount of memory to use to cache the contents of pg_commit_ts (see pgdata_contents_table). If this value is specified…
dynamic_shared_memory_type — PostgreSQL configuration parameter
Specifies the dynamic shared memory implementation that the server should use. Possible values are posix (for POSIX shared memory allocated…
file_copy_method — PostgreSQL configuration parameter
Specifies the method used to copy files. Possible values are COPY (default) and CLONE (if operating support is available).
file_extend_method — PostgreSQL configuration parameter
Specifies the method used to extend data files during bulk operations such as COPY. The first available option is used…
huge_page_size — PostgreSQL configuration parameter
Controls the size of huge pages, when they are enabled with huge_pages. The default is zero (0). When set to…
default: zero (0io_combine_limit — PostgreSQL configuration parameter
Controls the largest I/O size in operations that combine I/O. If set higher than the io_max_combine_limit parameter, the lower value…
default: 128kBio_max_combine_limit — PostgreSQL configuration parameter
Controls the largest I/O size in operations that combine I/O, and silently limits the user-settable parameter io_combine_limit. This parameter can…
default: 128kBio_max_concurrency — PostgreSQL configuration parameter
Controls the maximum number of I/O operations that one process can execute simultaneously.
io_max_workers — PostgreSQL configuration parameter
Sets the maximum number of I/O worker processes. The default is 8. This parameter can only be set in the…
default: 8io_method — PostgreSQL configuration parameter
Selects the method for executing asynchronous I/O. Possible values are: worker (execute asynchronous I/O using worker processes)
io_min_workers — PostgreSQL configuration parameter
Sets the minimum number of I/O worker processes. The default is 2. This parameter can only be set in the…
default: 2io_worker_idle_timeout — PostgreSQL configuration parameter
Sets the time after which entirely idle I/O worker processes exit, reducing the size of pool to match demand. The…
default: 1 minuteio_worker_launch_interval — PostgreSQL configuration parameter
Sets the minimum time before another I/O worker can be launched. This avoids creating too many for an unsustained burst…
default: 100mslogical_decoding_work_mem — PostgreSQL configuration parameter
Specifies the maximum amount of memory to be used by logical decoding, before some of the decoded changes are written…
default: 64 megabytes (64MBmax_notify_queue_pages — PostgreSQL configuration parameter
Specifies the maximum amount of allocated pages for notify / listen queue. The default value is 1048576. For 8 KB…
default: 1048576max_parallel_maintenance_workers — PostgreSQL configuration parameter
Sets the maximum number of parallel workers that can be started by a single utility command. Currently, the parallel utility…
default: 2max_stack_depth — PostgreSQL configuration parameter
Specifies the maximum safe depth of the server's execution stack. The ideal setting for this parameter is the actual stack…
min_dynamic_shared_memory — PostgreSQL configuration parameter
Specifies the amount of memory that should be allocated at server startup for use by parallel queries. When this memory…
default: 0 (nonemultixact_member_buffers — PostgreSQL configuration parameter
Specifies the amount of shared memory to use to cache the contents of pg_multixact/members (see pgdata_contents_table). If this value is…
default: 32multixact_offset_buffers — PostgreSQL configuration parameter
Specifies the amount of shared memory to use to cache the contents of pg_multixact/offsets (see pgdata_contents_table). If this value is…
default: 16notify_buffers — PostgreSQL configuration parameter
Specifies the amount of shared memory to use to cache the contents of pg_notify (see pgdata_contents_table). If this value is…
default: 16parallel_leader_participation — PostgreSQL configuration parameter
Allows the leader process to execute the query plan under Gather and Gather Merge nodes instead of waiting for worker…
default: onserializable_buffers — PostgreSQL configuration parameter
Specifies the amount of shared memory to use to cache the contents of pg_serial (see pgdata_contents_table). If this value is…
default: 32shared_memory_type — PostgreSQL configuration parameter
Specifies the shared memory implementation that the server should use for the main shared memory region that holds PostgreSQL's shared…
subtransaction_buffers — PostgreSQL configuration parameter
Specifies the amount of shared memory to use to cache the contents of pg_subtrans (see pgdata_contents_table). If this value is…
temp_file_limit — PostgreSQL configuration parameter
Specifies the maximum amount of disk space that a process can use for temporary files, such as sort and hash…
timing_clock_source — PostgreSQL configuration parameter
Selects the method for making timing measurements using the OS or specialized CPU instructions. Possible values are: auto (automatically chooses…
transaction_buffers — PostgreSQL configuration parameter
Specifies the amount of shared memory to use to cache the contents of pg_xact (see pgdata_contents_table). If this value is…
vacuum_buffer_usage_limit — PostgreSQL configuration parameter
Specifies the size of the Buffer Access Strategy used by the VACUUM and ANALYZE commands. A setting of 0 will…
default: 2MBResource Limits
Run-time Statistics
log_statement_stats — PostgreSQL configuration parameter
For each query, output performance statistics of the respective module to the server log. This is a crude profiling instrument,…
stats_fetch_consistency — PostgreSQL configuration parameter
Determines the behavior when cumulative statistics are accessed multiple times within a transaction. When set to none, each access re-fetches…
default: cachetrack_activity_query_size — PostgreSQL configuration parameter
Specifies the amount of memory reserved to store the text of the currently executing command for each active session, for…
default: 1024 bytestrack_cost_delay_timing — PostgreSQL configuration parameter
Enables timing of cost-based vacuum delay (see runtime_config_resource_vacuum_cost). This parameter is off by default, as it will repeatedly query the…
track_counts — PostgreSQL configuration parameter
Enables collection of statistics on database activity. This parameter is on by default, because the autovacuum daemon needs the collected…
track_functions — PostgreSQL configuration parameter
Enables tracking of function call counts and time used. Specify pl to track only procedural-language functions, all to also track…
default: none, which disables function statistics trackingtrack_wal_io_timing — PostgreSQL configuration parameter
Enables timing of WAL I/O waits. This parameter is off by default, as it will repeatedly query the operating system…
Statistics
compute_query_id — PostgreSQL Configuration Parameter
Compute a stable query identifier (PG14+).
default: autotrack_activities — PostgreSQL Configuration Parameter
Track the current command of each session.
default: ontrack_io_timing — PostgreSQL Configuration Parameter
Collect timing of block read/write operations.
default: offVacuuming
autovacuum_analyze_scale_factor — PostgreSQL configuration parameter
Specifies a fraction of the table size to add to autovacuum_analyze_threshold when deciding whether to trigger an ANALYZE. The default…
default: 0autovacuum_analyze_score_weight — PostgreSQL configuration parameter
Specifies the scaling factor of the analyze threshold component of the score used by autovacuum for prioritization purposes. The default…
default: 1autovacuum_analyze_threshold — PostgreSQL configuration parameter
Specifies the minimum number of inserted, updated or deleted tuples needed to trigger an ANALYZE in any one table. The…
default: 50 tuplesautovacuum_freeze_score_weight — PostgreSQL configuration parameter
Specifies the scaling factor of the transaction ID age component of the score used by autovacuum for prioritization purposes. The…
default: 1autovacuum_max_parallel_workers — PostgreSQL configuration parameter
Sets the maximum number of parallel workers that can be used by a single autovacuum worker to process indexes. This…
default: 0autovacuum_multixact_freeze_max_age — PostgreSQL configuration parameter
Specifies the maximum age (in multixacts) that a table's pg_class.relminmxid field can attain before a VACUUM operation is forced to…
default: a relatively low 400 million multixactsautovacuum_multixact_freeze_score_weight — PostgreSQL configuration parameter
Specifies the scaling factor of the multixact ID age component of the score used by autovacuum for prioritization purposes. The…
default: 1autovacuum_vacuum_insert_score_weight — PostgreSQL configuration parameter
Specifies the scaling factor of the vacuum insert threshold component of the score used by autovacuum for prioritization purposes. The…
default: 1autovacuum_vacuum_insert_threshold — PostgreSQL configuration parameter
Specifies the number of inserted tuples needed to trigger a VACUUM in any one table. The default is 1000 tuples.…
default: 1000 tuplesautovacuum_vacuum_max_threshold — PostgreSQL configuration parameter
Specifies the maximum number of updated or deleted tuples needed to trigger a VACUUM in any one table, i.e., a…
default: 100,000,000 tuplesautovacuum_vacuum_score_weight — PostgreSQL configuration parameter
Specifies the scaling factor of the vacuum threshold component of the score used by autovacuum for prioritization purposes. The default…
default: 1autovacuum_worker_slots — PostgreSQL configuration parameter
Specifies the number of backend slots to reserve for autovacuum worker processes. The default is typically 16 slots, but might…
vacuum_cost_delay — PostgreSQL configuration parameter
The amount of time that the process will sleep when the cost limit has been exceeded. If this value is…
default: 0, which disables the cost-based vacuum delay featurevacuum_cost_limit — PostgreSQL configuration parameter
This is the accumulated cost that will cause the vacuuming process to sleep for vacuum_cost_delay. The default is 200.
default: 200vacuum_cost_page_dirty — PostgreSQL configuration parameter
The estimated cost charged when vacuum modifies a block that was previously clean. It represents the extra I/O required to…
default: 20vacuum_cost_page_hit — PostgreSQL configuration parameter
The estimated cost for vacuuming a buffer found in the shared buffer cache. It represents the cost to lock the…
default: 1vacuum_cost_page_miss — PostgreSQL configuration parameter
The estimated cost for vacuuming a buffer that has to be read from disk. This represents the effort to lock…
default: 2vacuum_failsafe_age — PostgreSQL configuration parameter
Specifies the maximum age (in transactions) that a table's pg_class.relfrozenxid field can attain before VACUUM takes extraordinary measures to avoid…
vacuum_freeze_min_age — PostgreSQL configuration parameter
Specifies the cutoff age (in transactions) that VACUUM should use to decide whether to trigger freezing of pages that have…
default: 50 million transactionsvacuum_freeze_table_age — PostgreSQL configuration parameter
VACUUM performs an aggressive scan if the table's pg_class.relfrozenxid field has reached the age specified by this setting. An aggressive…
default: 150 million transactionsvacuum_max_eager_freeze_failure_rate — PostgreSQL configuration parameter
Specifies the maximum number of pages (as a fraction of total pages in the relation) that VACUUM may scan and…
default: 0vacuum_multixact_failsafe_age — PostgreSQL configuration parameter
Specifies the maximum age (in multixacts) that a table's pg_class.relminmxid field can attain before VACUUM takes extraordinary measures to avoid…
vacuum_multixact_freeze_min_age — PostgreSQL configuration parameter
Specifies the cutoff age (in multixacts) that VACUUM should use to decide whether to trigger freezing of pages with an…
default: 5 million multixactsvacuum_multixact_freeze_table_age — PostgreSQL configuration parameter
VACUUM performs an aggressive scan if the table's pg_class.relminmxid field has reached the age specified by this setting. An aggressive…
default: 150 million multixactsvacuum_truncate — PostgreSQL configuration parameter
Enables or disables vacuum to try to truncate off any empty pages at the end of the table. The default…
default: trueVersion and Platform Compatibility
allow_alter_system — PostgreSQL configuration parameter
When allow_alter_system is set to off, an error is returned if the ALTER SYSTEM command is executed. This parameter can…
default: onarray_nulls — PostgreSQL configuration parameter
This controls whether the array input parser recognizes unquoted NULL as specifying a null array element. By default, this is…
backslash_quote — PostgreSQL configuration parameter
This parameter controls whether a quote mark can be represented by \' in the escape string syntax (E'...'). The preferred,…
lo_compat_privileges — PostgreSQL configuration parameter
In PostgreSQL releases prior to 9.0, large objects did not have access privileges and were, therefore, always readable and writable…
default: offquote_all_identifiers — PostgreSQL configuration parameter
When the database generates SQL, force all identifiers to be quoted, even if they are not (currently) keywords. This will…
standard_conforming_strings — PostgreSQL configuration parameter
Beginning in PostgreSQL 19, this parameter is always on. String literals are always parsed as specified in the SQL standard…
synchronize_seqscans — PostgreSQL configuration parameter
This allows sequential scans of large tables to synchronize with each other, so that concurrent scans read the same block…
default: ontransform_null_equals — PostgreSQL configuration parameter
When on, expressions of the form expr = NULL (or NULL = expr) are treated as expr IS NULL, that…
default: offWAL
fsync — PostgreSQL Configuration Parameter
Force WAL/data changes to durable storage.
default: onfull_page_writes — PostgreSQL Configuration Parameter
Write full page images after a checkpoint to survive torn pages.
default: onsynchronous_commit — PostgreSQL Configuration Parameter
When COMMIT waits for WAL durability / standby confirmation.
default: onwal_buffers — PostgreSQL Configuration Parameter
Shared memory for unwritten WAL.
default: -1wal_compression — PostgreSQL Configuration Parameter
Compress full-page images written to WAL.
default: offwal_level — PostgreSQL Configuration Parameter
Amount of information written to the WAL.
default: replicaWrite Ahead Log
archive_cleanup_command — PostgreSQL configuration parameter
This optional parameter specifies a shell command that will be executed at every restartpoint. The purpose of archive_cleanup_command is to…
archive_library — PostgreSQL configuration parameter
The library to use for archiving completed WAL file segments. If set to an empty string (the default), archiving via…
archive_timeout — PostgreSQL configuration parameter
The archive_command or archive_library is only invoked for completed WAL segments. Hence, if your server generates little WAL traffic (or…
checkpoint_flush_after — PostgreSQL configuration parameter
Whenever more than this amount of data has been written while performing a checkpoint, attempt to force the OS to…
default: 256kB on Linux, 0 elsewherecheckpoint_warning — PostgreSQL configuration parameter
Write a message to the server log if checkpoints caused by the filling of WAL segment files happen closer together…
default: 30 seconds (30scommit_delay — PostgreSQL configuration parameter
Setting commit_delay adds a time delay before a WAL flush is initiated. This can improve group commit throughput by allowing…
commit_siblings — PostgreSQL configuration parameter
Minimum number of concurrent open transactions to require before performing the commit_delay delay. A larger value makes it more probable…
default: five transactionsrecovery_end_command — PostgreSQL configuration parameter
This parameter specifies a shell command that will be executed once only at the end of recovery. This parameter is…
recovery_prefetch — PostgreSQL configuration parameter
Whether to try to prefetch blocks that are referenced in the WAL that are not yet in the buffer pool,…
recovery_target_action — PostgreSQL configuration parameter
Specifies what action the server should take once the recovery target is reached. The default is pause, which means recovery…
default: pause, which means recovery will be pausedrecovery_target_inclusive — PostgreSQL configuration parameter
Specifies whether to stop just after the specified recovery target (on), or just before the recovery target (off). Applies when…
recovery_target_lsn — PostgreSQL configuration parameter
This parameter specifies the LSN of the write-ahead log location up to which recovery will proceed. The precise stopping point…
recovery_target_name — PostgreSQL configuration parameter
This parameter specifies the named restore point (created with pg_create_restore_point()) to which recovery will proceed.
recovery_target_time — PostgreSQL configuration parameter
This parameter specifies the time stamp up to which recovery will proceed. The precise stopping point is also influenced by…
recovery_target_timeline — PostgreSQL configuration parameter
Specifies recovering into a particular timeline. The value can be a numeric timeline ID or a special value. The value…
recovery_target_xid — PostgreSQL configuration parameter
This parameter specifies the transaction ID up to which recovery will proceed. Keep in mind that while transaction IDs are…
restore_command — PostgreSQL configuration parameter
The local shell command to execute to retrieve an archived segment of the WAL file series. This parameter is required…
summarize_wal — PostgreSQL configuration parameter
Enables the WAL summarizer process. Note that WAL summarization can be enabled either on a primary or on a standby.…
default: offwal_decode_buffer_size — PostgreSQL configuration parameter
A limit on how far ahead the server can look in the WAL, to find blocks to prefetch. If this…
default: 512kBwal_init_zero — PostgreSQL configuration parameter
If set to on (the default), this option causes new WAL files to be filled with zeroes. On some file…
wal_log_hints — PostgreSQL configuration parameter
When this parameter is on, the PostgreSQL server writes the entire content of each disk page to WAL during the…
wal_recycle — PostgreSQL configuration parameter
If set to on (the default), this option causes WAL files to be recycled by renaming them, avoiding the need…
wal_skip_threshold — PostgreSQL configuration parameter
When wal_level is minimal and a transaction commits after creating or rewriting a permanent relation, this setting determines how to…
default: two megabytes (2MBwal_summary_keep_time — PostgreSQL configuration parameter
Configures the amount of time after which the WAL summarizer automatically removes old WAL summaries. The file timestamp is used…
default: 10 dayswal_sync_method — PostgreSQL configuration parameter
Method used for forcing WAL updates out to disk. If fsync is off then this setting is irrelevant, since WAL…
wal_writer_delay — PostgreSQL configuration parameter
Specifies how often the WAL writer flushes WAL, in time terms. After flushing WAL the writer sleeps for the length…
default: 200 milliseconds (200mswal_writer_flush_after — PostgreSQL configuration parameter
Specifies how often the WAL writer flushes WAL, in volume terms. If the last flush happened less than wal_writer_delay ago…
default: 1MB