PostgreSQL vem com uma tonelada de definições de configuração, mas com documentação espalhada por todo o Manual! Aqui está uma folha de dicas útil de todas as opções de configuração do Postgres 10, divididas em categorias, com links clicáveis que vão para a documentação oficial. Aproveite!
Autovacuum
autovácuo | Inicia o subprocesso de autovacuum. |
autovacuum_analyze_scale_factor | Número de inserções, atualizações ou exclusões de tuplas antes da análise como uma fração de reltuplas. |
autovacuum_analyze_threshold | Número mínimo de inserções, atualizações ou exclusões de tuplas antes da análise. |
autovacuum_freeze_max_age | Idade em que uma tabela deve ser esvaziada automaticamente para evitar a quebra do ID da transação. |
autovacuum_max_workers | Define o número máximo de processos de trabalho de autovacuum em execução simultânea. |
autovacuum_multixact_freeze_max_age | Multixact idade para autovacuar uma tabela para evitar o multixact wraparound. |
autovacuum_naptime | Tempo para dormir entre execuções de autovacuum. |
autovacuum_vacuum_cost_delay | Atraso de custo de vácuo em milissegundos, para vácuo automático. |
autovacuum_vacuum_cost_limit | Valor do custo do aspirador disponível antes do cochilo, para o aspirador automático. |
autovacuum_vacuum_scale_factor | Número de atualizações ou exclusões de tuplas antes do vácuo como uma fração de reltuplas. |
autovacuum_vacuum_threshold | Número mínimo de atualizações ou exclusões de tuplas antes do vácuo. |
Padrões de conexão do cliente/local e formatação
client_encoding | Define a codificação do conjunto de caracteres do cliente. |
Estilo de data | Define o formato de exibição para valores de data e hora. |
default_text_search_config | Define a configuração de pesquisa de texto padrão. |
extra_float_digits | Define o número de dígitos exibidos para valores de ponto flutuante. |
IntervalStyle | Define o formato de exibição para valores de intervalo. |
lc_collate | Mostra a localidade da ordem de ordenação. |
lc_ctype | Mostra a classificação de caracteres e a localidade de conversão de maiúsculas e minúsculas. |
lc_messages | Define o idioma no qual as mensagens são exibidas. |
lc_monetário | Define a localidade para formatar valores monetários. |
lc_numeric | Define a localidade para formatar números. |
lc_time | Define a localidade para formatar valores de data e hora. |
server_encoding | Define a codificação do conjunto de caracteres do servidor (banco de dados). |
Fuso Horário | Define o fuso horário para exibir e interpretar carimbos de hora. |
timezone_abbreviations | Seleciona um arquivo de abreviações de fuso horário. |
Padrões de conexão do cliente/outros padrões
dynamic_library_path | Define o caminho para módulos carregáveis dinamicamente. |
gin_fuzzy_search_limit | Define o resultado máximo permitido para pesquisa exata por GIN. |
tcp_keepalives_count | Número máximo de retransmissões de manutenção de atividade TCP. |
tcp_keepalives_idle | Tempo entre a emissão de keepalives TCP. |
tcp_keepalives_interval | Tempo entre retransmissões de manutenção de atividade TCP. |
Padrões de conexão do cliente/pré-carregamento de biblioteca compartilhada
local_preload_libraries | Lista bibliotecas compartilhadas sem privilégios para pré-carregar em cada back-end. |
session_preload_libraries | Lista as bibliotecas compartilhadas para pré-carregar em cada back-end. |
shared_preload_libraries | Lista as bibliotecas compartilhadas para pré-carregar no servidor. |
Padrões de conexão do cliente/comportamento da instrução
bytea_output | Define o formato de saída para bytea. |
check_function_bodies | Verifique os corpos das funções durante CREATE FUNCTION. |
default_tablespace | Define o tablespace padrão para criar tabelas e índices. |
default_transaction_deferrable | Define o status adiável padrão de novas transações. |
default_transaction_isolation | Define o nível de isolamento da transação de cada nova transação. |
default_transaction_read_only | Define o status padrão somente leitura de novas transações. |
gin_pending_list_limit | Define o tamanho máximo da lista pendente para o índice GIN. |
idle_in_transaction_session_timeout | Define a duração máxima permitida de qualquer transação inativa. |
lock_timeout | Define a duração máxima permitida de qualquer espera por um bloqueio. |
search_path | Define a ordem de pesquisa do esquema para nomes que não são qualificados pelo esquema. |
session_replication_role | Define o comportamento da sessão para acionadores e regras de reescrita. |
statement_timeout | Define a duração máxima permitida de qualquer instrução. |
temp_tablespaces | Define os tablespaces a serem usados para tabelas temporárias e arquivos de classificação. |
transaction_deferrable | Se adiar uma transação serializável somente leitura até que possa ser executada sem possíveis falhas de serialização. |
isolamento_transação | Define o nível de isolamento da transação atual. |
transaction_read_only | Define o status somente leitura da transação atual. |
vacuum_freeze_min_age | Idade mínima em que VACUUM deve congelar uma linha da tabela. |
vacuum_freeze_table_age | Idade em que VACUUM deve varrer a tabela inteira para congelar tuplas. |
vacuum_multixact_freeze_min_age | Idade mínima em que VACUUM deve congelar um MultiXactId em uma linha da tabela. |
vacuum_multixact_freeze_table_age | Multixact age em que VACUUM deve varrer a tabela inteira para congelar tuplas. |
xmlbinary | Define como os valores binários devem ser codificados em XML. |
xmloption | Define se os dados XML em operações implícitas de análise e serialização devem ser considerados como documentos ou fragmentos de conteúdo. |
Conexões e autenticação/Configurações de conexão
bonjour | Permite anunciar o servidor via Bonjour. |
bonjour_name | Define o nome do serviço Bonjour. |
listen_addresses | Define o nome do host ou endereço(s) IP para escutar. |
max_connections | Define o número máximo de conexões simultâneas. |
porta | Define a porta TCP na qual o servidor escuta. |
superuser_reserved_connections | Define o número de slots de conexão reservados para superusuários. |
unix_socket_directories | Define os diretórios onde os soquetes de domínio Unix serão criados. |
unix_socket_group | Define o grupo proprietário do soquete do domínio Unix. |
unix_socket_permissions | Define as permissões de acesso do soquete do domínio Unix. |
Conexões e autenticação / Segurança e autenticação
authentication_timeout | Define o tempo máximo permitido para concluir a autenticação do cliente. |
db_user_namespace | Ativa nomes de usuário por banco de dados. |
krb_caseins_users | Define se os nomes de usuário Kerberos e GSSAPI devem ser tratados como não diferenciando maiúsculas de minúsculas. |
krb_server_keyfile | Define a localização do arquivo de chave do servidor Kerberos. |
senha_encriptação | Criptografar senhas. |
row_security | Ative a segurança de linha. |
ssl | Ativa conexões SSL. |
ssl_ca_file | Localização do arquivo de autoridade de certificação SSL. |
ssl_cert_file | Localização do arquivo de certificado do servidor SSL. |
ssl_ciphers | Define a lista de cifras SSL permitidas. |
ssl_crl_file | Localização do arquivo da lista de revogação do certificado SSL. |
ssl_dh_params_file | Localização do arquivo de parâmetros SSL DH. |
ssl_ecdh_curve | Define a curva a ser usada para ECDH. |
ssl_key_file | Localização do arquivo de chave privada do servidor SSL. |
ssl_prefer_server_ciphers | Dê prioridade à ordem do conjunto de cifras do servidor. |
Opções do desenvolvedor
allow_system_table_mods | Permite modificações na estrutura das tabelas do sistema. |
ignore_checksum_failure | Continua o processamento após uma falha na soma de verificação. |
ignore_system_indexes | Desativa a leitura de índices do sistema. |
post_auth_delay | Aguarda N segundos na inicialização da conexão após a autenticação. |
pre_auth_delay | Aguarda N segundos na inicialização da conexão antes da autenticação. |
trace_notify | Gera saída de depuração para LISTEN e NOTIFY. |
trace_recovery_messages | Ativa o registro de informações de depuração relacionadas à recuperação. |
trace_sort | Emitir informações sobre o uso de recursos na classificação. |
wal_consistency_checking | Define os gerenciadores de recursos do WAL para os quais as verificações de consistência do WAL são feitas. |
zero_damaged_pages | Continua processando cabeçalhos de página danificados. |
Tratamento de erros
exit_on_error | Encerre a sessão em caso de erro. |
restart_after_crash | Reinicialize o servidor após uma falha de back-end. |
Locais de arquivos
config_file | Define o arquivo de configuração principal do servidor. |
diretório_dados | Define o diretório de dados do servidor. |
external_pid_file | Grava o PID do postmaster no arquivo especificado. |
hba_file | Define o arquivo de configuração “hba” do servidor. |
arquivo_ident | Define o arquivo de configuração "ident" do servidor. |
Gerenciamento de bloqueio
deadlock_timeout | Define o tempo de espera em um bloqueio antes de verificar o impasse. |
max_locks_per_transaction | Define o número máximo de bloqueios por transação. |
max_pred_locks_per_page | Define o número máximo de tuplas bloqueadas por predicado por página. |
max_pred_locks_per_relation | Define o número máximo de páginas e tuplas bloqueadas por predicado por relação. |
max_pred_locks_per_transaction | Define o número máximo de bloqueios de predicado por transação. |
Opções predefinidas
block_size | Mostra o tamanho de um bloco de disco. |
data_checksums | Mostra se as somas de verificação de dados estão ativadas para este cluster. |
debug_assertions | Mostra se o servidor em execução tem verificações de asserção habilitadas. |
integer_datetimes | As datas são baseadas em números inteiros. |
max_function_args | Mostra o número máximo de argumentos de função. |
max_identifier_length | Mostra o comprimento máximo do identificador. |
max_index_keys | Mostra o número máximo de chaves de índice. |
segment_size | Mostra o número de páginas por arquivo de disco. |
server_version | Mostra a versão do servidor. |
server_version_num | Mostra a versão do servidor como um número inteiro. |
wal_block_size | Mostra o tamanho do bloco no log de gravação antecipada. |
wal_segment_size | Mostra o número de páginas por segmento de log de gravação antecipada. |
Título do processo
cluster_name | Define o nome do cluster, que está incluído no título do processo. |
update_process_title | Atualiza o título do processo para mostrar o comando SQL ativo. |
Ajuste de consulta/Otimizador de consulta genética
geqo | Ativa a otimização de consulta genética. |
geqo_effort | GEQO:o esforço é usado para definir o padrão para outros parâmetros GEQO. |
geqo_generations | GEQO:número de iterações do algoritmo. |
geqo_pool_size | GEQO:número de indivíduos na população. |
geqo_seed | GEQO:semente para seleção de caminho aleatório. |
geqo_selection_bias | GEQO:pressão seletiva dentro da população. |
geqo_threshold | Define o limite de itens FROM além do qual o GEQO é usado. |
Ajuste de consulta/outras opções do planejador
exclusão_restrição | Permite que o planejador use restrições para otimizar consultas. |
cursor_tuple_fraction | Define a estimativa do planejador da fração das linhas de um cursor que serão recuperadas. |
default_statistics_target | Define a meta de estatísticas padrão. |
force_parallel_mode | Força o uso de recursos de consulta paralela. |
from_collapse_limit | Define o tamanho da lista FROM além do qual as subconsultas não são recolhidas. |
join_collapse_limit | Define o tamanho da lista FROM além do qual as construções JOIN não são achatadas. |
Ajuste de consulta/constantes de custo do planejador
cpu_index_tuple_cost | Configura a estimativa do planejador do custo de processamento de cada entrada de índice durante uma verificação de índice. |
cpu_operator_cost | Configura a estimativa do planejador do custo de processamento de cada chamada de operador ou função. |
cpu_tuple_cost | Define a estimativa do planejador do custo de processamento de cada tupla (linha). |
effective_cache_size | Define a suposição do planejador sobre o tamanho do cache de disco. |
min_parallel_index_scan_size | Define a quantidade mínima de dados de índice para uma verificação paralela. |
min_parallel_table_scan_size | Define a quantidade mínima de dados da tabela para uma verificação paralela. |
parallel_setup_cost | Define a estimativa do planejador do custo de iniciar processos de trabalho para consultas paralelas. |
parallel_tuple_cost | Define a estimativa do planejador do custo de passar cada tupla (linha) do trabalhador para o back-end mestre. |
random_page_cost | Define a estimativa do planejador do custo de uma página de disco buscada não sequencialmente. |
seq_page_cost | Define a estimativa do planejador do custo de uma página de disco buscada sequencialmente. |
Ajuste de consulta/configuração do método do planejador
enable_bitmapscan | Ativa o uso de planos de varredura de bitmap pelo planejador. |
enable_gathermerge | Ativa o uso do planejador de reunir planos de mesclagem. |
enable_hashagg | Permite o uso do planejador de planos de agregação com hash. |
enable_hashjoin | Ativa o uso de planos de junção de hash pelo planejador. |
enable_indexonlyscan | Permite o uso do planejador de planos de varredura somente de índice. |
enable_indexscan | Ativa o uso do planejador de planos de verificação de índice. |
enable_material | Permite o uso da materialização pelo planejador. |
enable_mergejoin | Ativa o uso do planejador de planos de junção de mesclagem. |
enable_nestloop | Ativa o uso de planos de junção de loop aninhado pelo planejador. |
enable_seqscan | Permite o uso do planejador de planos de varredura sequencial. |
enable_sort | Permite que o planejador use etapas de classificação explícitas. |
enable_tidscan | Permite o uso do planejador de planos de varredura TID. |
Replicação
track_commit_timestamp | Coleta o tempo de confirmação da transação. |
Replicação/Servidor mestre
synchronous_standby_names | Número de standbys síncronos e lista de nomes de potenciais síncronos. |
vacuum_defer_cleanup_age | Número de transações pelas quais a limpeza VACUUM e HOT deve ser adiada, se houver. |
Replicação/Servidores de envio
max_replication_slots | Define o número máximo de slots de replicação definidos simultaneamente. |
max_wal_senders | Define o número máximo de processos do remetente WAL em execução simultânea. |
wal_keep_segments | Define o número de arquivos WAL mantidos para servidores em espera. |
wal_sender_timeout | Define o tempo máximo de espera pela replicação do WAL. |
Replicação/Servidores em espera
hot_standby | Permite conexões e consultas durante a recuperação. |
hot_standby_feedback | Permite feedback de um hot standby para o primário que evitará conflitos de consulta. |
max_standby_archive_delay | Configura o atraso máximo antes de cancelar consultas quando um servidor de espera ativa está processando dados WAL arquivados. |
max_standby_streaming_delay | Define o atraso máximo antes de cancelar consultas quando um servidor de espera ativa está processando dados WAL transmitidos. |
wal_receiver_status_interval | Define o intervalo máximo entre os relatórios de status do receptor WAL para o primário. |
wal_receiver_timeout | Define o tempo máximo de espera para receber dados do primário. |
wal_retrieve_retry_interval | Define o tempo de espera antes de tentar novamente recuperar o WAL após uma tentativa com falha. |
Replicação / Assinantes
max_logical_replication_workers | Número máximo de processos de trabalho de replicação lógica. |
max_sync_workers_per_subscription | Número máximo de workers de sincronização de tabela por assinatura. |
Relatórios e registro / O que registrar
application_name | Configura o nome do aplicativo a ser relatado em estatísticas e logs. |
debug_pretty_print | Recua a análise e as exibições da árvore de planos. |
debug_print_parse | Registra a árvore de análise de cada consulta. |
debug_print_plan | Registra o plano de execução de cada consulta. |
debug_print_rewritten | Registra a árvore de análise reescrita de cada consulta. |
log_autovacuum_min_duration | Define o tempo mínimo de execução acima do qual as ações de autovacuum serão registradas. |
log_checkpoints | Registra cada ponto de verificação. |
log_connections | Registra cada conexão bem-sucedida. |
log_disconnections | Registra o fim de uma sessão, incluindo a duração. |
log_duration | Registra a duração de cada instrução SQL concluída. |
log_error_verbosity | Define o detalhamento das mensagens registradas. |
log_hostname | Registra o nome do host nos logs de conexão. |
log_line_prefix | Controla as informações prefixadas em cada linha de log. |
log_lock_waits | Registra longas esperas de bloqueio. |
log_replication_commands | Registra cada comando de replicação. |
log_statement | Define o tipo de instruções registradas. |
log_temp_files | Registre o uso de arquivos temporários maiores que esse número de kilobytes. |
log_timezone | Define o fuso horário a ser usado nas mensagens de log. |
Relatórios e registro / Quando registrar
client_min_messages | Define os níveis de mensagem que são enviados ao cliente. |
log_min_duration_statement | Define o tempo mínimo de execução acima do qual as instruções serão registradas. |
log_min_error_statement | Faz com que todas as instruções que geram erros neste nível ou acima sejam registradas. |
log_min_messages | Define os níveis de mensagem que são registrados. |
Relatórios e registro / Onde registrar
event_source | Define o nome do aplicativo usado para identificar as mensagens do PostgreSQL no log de eventos. |
log_destination | Define o destino para a saída do log do servidor. |
diretório_log | Define o diretório de destino para arquivos de log. |
log_file_mode | Define as permissões de arquivo para arquivos de log. |
log_filename | Define o padrão de nome de arquivo para arquivos de log. |
log_rotation_age | A rotação automática do arquivo de log ocorrerá após N minutos. |
log_rotation_size | A rotação automática do arquivo de log ocorrerá após N kilobytes. |
log_truncate_on_rotation | Truncar arquivos de log existentes com o mesmo nome durante a rotação de log. |
logging_collector | Inicie um subprocesso para capturar a saída stderr e/ou csvlogs em arquivos de log. |
syslog_facility | Configura o "recurso" do syslog a ser usado quando o syslog estiver ativado. |
syslog_ident | Define o nome do programa usado para identificar as mensagens do PostgreSQL no syslog. |
syslog_sequence_numbers | Adicione o número de sequência às mensagens do syslog para evitar a supressão duplicada. |
syslog_split_messages | Divida as mensagens enviadas ao syslog por linhas para caber em 1024 bytes. |
Uso de recursos/comportamento assíncrono
backend_flush_after | Número de páginas após as quais as gravações executadas anteriormente são liberadas para o disco. |
effective_io_concurrency | Número de solicitações simultâneas que podem ser tratadas com eficiência pelo subsistema de disco. |
max_parallel_workers | Define o número máximo de trabalhadores paralelos que podem estar ativos ao mesmo tempo. |
max_parallel_workers_per_gather | Define o número máximo de processos paralelos por nó executor. |
max_worker_processes | Número máximo de processos de trabalho simultâneos. |
old_snapshot_threshold | Tempo antes que um instantâneo seja muito antigo para ler as páginas alteradas após a captura do instantâneo. |
Uso de recursos / gravador de segundo plano
bgwriter_delay | Tempo de suspensão do gravador em segundo plano entre as rodadas. |
bgwriter_flush_after | Número de páginas após as quais as gravações executadas anteriormente são liberadas para o disco. |
bgwriter_lru_maxpages | Número máximo do gravador em segundo plano de páginas LRU a serem liberadas por rodada. |
bgwriter_lru_multiplier | Vários do uso médio de buffer para liberar por rodada. |
Uso de recursos/atraso de vácuo baseado em custo
vacuum_cost_delay | Atraso do custo do vácuo em milissegundos. |
vacuum_cost_limit | Valor do custo do aspirador disponível antes do cochilo. |
vacuum_cost_page_dirty | Custo de vácuo para uma página suja por vácuo. |
vacuum_cost_page_hit | Custo de vácuo para uma página encontrada no cache do buffer. |
vacuum_cost_page_miss | Custo de vácuo para uma página não encontrada no cache do buffer. |
Uso de recursos/disco
temp_file_limit | Limite o tamanho total de todos os arquivos temporários usados por cada processo. |
Uso de recursos/Recursos do kernel
max_files_per_process | Define o número máximo de arquivos abertos simultaneamente para cada processo do servidor. |
Uso de recursos/memória
autovacuum_work_mem | Configura a memória máxima a ser usada por cada processo de trabalho de autovacuum. |
dynamic_shared_memory_type | Seleciona a implementação de memória compartilhada dinâmica usada. |
huge_pages | Uso de páginas enormes no Linux. |
maintenance_work_mem | Configura a memória máxima a ser usada para operações de manutenção. |
max_prepared_transactions | Define o número máximo de transações preparadas simultaneamente. |
max_stack_depth | Define a profundidade máxima da pilha, em kilobytes. |
replacement_sort_tuples | Define o número máximo de tuplas a serem classificadas usando a seleção de substituição. |
shared_buffers | Define o número de buffers de memória compartilhada usados pelo servidor. |
temp_buffers | Define o número máximo de buffers temporários usados por cada sessão. |
track_activity_query_size | Define o tamanho reservado para pg_stat_activity.query, em bytes. |
trabalho_mem | Configura a memória máxima a ser usada para espaços de trabalho de consulta. |
Estatísticas / Monitoramento
log_executor_stats | Grava estatísticas de desempenho do executor no log do servidor. |
log_parser_stats | Grava estatísticas de desempenho do analisador no log do servidor. |
log_planner_stats | Grava estatísticas de desempenho do planejador no log do servidor. |
log_statement_stats | Grava estatísticas de desempenho cumulativo no log do servidor. |
Estatísticas / Coletor de estatísticas de consulta e índice
stats_temp_directory | Grava arquivos de estatísticas temporários no diretório especificado. |
track_activities | Coleta informações sobre a execução de comandos. |
track_counts | Coleta estatísticas sobre a atividade do banco de dados. |
track_functions | Coleta estatísticas em nível de função sobre a atividade do banco de dados. |
track_io_timing | Coleta estatísticas de tempo para atividade de E/S do banco de dados. |
Compatibilidade de versão e plataforma / outras plataformas e clientes
transform_null_equals | Trata "expr=NULL" como "expr IS NULL". |
Compatibilidade de versão e plataforma/versões anteriores do PostgreSQL
array_nulls | Ative a entrada de elementos NULL em arrays. |
barra invertida | Define se “'” é permitido em literais de string. |
default_with_oids | Crie novas tabelas com OIDs por padrão. |
escape_string_warning | Avisar sobre escapes de barra invertida em literais de string comuns. |
lo_compat_privileges | Ativa o modo de compatibilidade com versões anteriores para verificações de privilégios em objetos grandes. |
operator_precedence_warning | Emitir um aviso para construções que mudaram de significado desde o PostgreSQL 9.4. |
quote_all_identifiers | Ao gerar fragmentos SQL, cite todos os identificadores. |
standard_conforming_strings | Faz com que as strings ‘…’ tratem as barras invertidas literalmente. |
sincronizar_seqscans | Ative verificações sequenciais sincronizadas. |
Registro/arquivamento de gravação antecipada
archive_command | Define o comando shell que será chamado para arquivar um arquivo WAL. |
archive_mode | Permite o arquivamento de arquivos WAL usando archive_command. |
archive_timeout | Força uma mudança para o próximo arquivo WAL se um novo arquivo não for iniciado em N segundos. |
Registro de gravação antecipada/pontos de verificação
checkpoint_completion_target | Tempo gasto liberando buffers sujos durante o ponto de verificação, como fração do intervalo do ponto de verificação. |
checkpoint_flush_after | Número de páginas após as quais as gravações executadas anteriormente são liberadas para o disco. |
checkpoint_timeout | Define o tempo máximo entre os checkpoints WAL automáticos. |
checkpoint_warning | Ativa avisos se os segmentos de ponto de verificação forem preenchidos com mais frequência do que isso. |
max_wal_size | Define o tamanho do WAL que aciona um ponto de verificação. |
min_wal_size | Define o tamanho mínimo para reduzir o WAL. |
Registro / configurações de gravação antecipada
commit_delay | Define o atraso em microssegundos entre a confirmação da transação e a liberação do WAL para o disco. |
commit_siblings | Define o mínimo de transações abertas simultâneas antes de realizar commit_delay. |
fsync | Forces synchronization of updates to disk. |
full_page_writes | Writes full pages to WAL when first modified after a checkpoint. |
synchronous_commit | Sets the current transaction’s synchronization level. |
wal_buffers | Sets the number of disk-page buffers in shared memory for WAL. |
wal_compression | Compresses full-page writes written in WAL file. |
wal_level | Set the level of information written to the WAL. |
wal_log_hints | Writes full pages to WAL when first modified after a checkpoint, even for a non-critical modifications. |
wal_sync_method | Selects the method used for forcing WAL updates to disk. |
wal_writer_delay | Time between WAL flushes performed in the WAL writer. |
wal_writer_flush_after | Amount of WAL written out by WAL writer that triggers a flush. |