From 2b37dc926b23e0840ca3b4b4125b6332c6840008 Mon Sep 17 00:00:00 2001 From: mgy20 <mgy20@inf.ufpr.br> Date: Sat, 15 Mar 2025 02:38:30 +0000 Subject: [PATCH] Edit Postgresql.md --- docs/source/pages/PostgreSQL/Postgresql.md | 58 ---------------------- 1 file changed, 58 deletions(-) diff --git a/docs/source/pages/PostgreSQL/Postgresql.md b/docs/source/pages/PostgreSQL/Postgresql.md index 447668f..34e0c19 100644 --- a/docs/source/pages/PostgreSQL/Postgresql.md +++ b/docs/source/pages/PostgreSQL/Postgresql.md @@ -211,67 +211,9 @@ postgres=#\COPY (SELECT count(*) FROM customer) TO '/path/to/file/on/server' WIT ``` -## Tunning -Por padrão o postgres vem com uma configuração básica para funcionar com a maioria dos sistemas, o que não é ideal para produção. -Caso seja necessário, é possivel alterar parâmetros e padrões de comportamento que resultem em sua otimização. -Para isso é possÃvel alterar as configurações no arquivo `postgresql.conf` que pode ser localizado com `SHOW config_file`. Dependendo do parâmetro alterado pode-se atualizar o serviço sem a necessidade de reiniciar com o comando `SELECT pg_reload_conf()`. - -#### max_connections -Configura o número máximo de conexões concorrentes que o servidor suporta. -<Verificar os problemas com altos valores de max_connections> - -#### shared_buffers -Configura a quantidade máxima de memória compartilhada que o servidor postgres utiliza. O aumento de shared_buffers também requer o aumento de max_wal_size. -- Recomendação: Configurar valor com 25% da memória disponÃvel, pois para os outros 75% será utilizado para tarefas como cacheamento e conexões. - -#### effective_cache_size -Retorna ao planer de consulta do postgres a quantidade de memória disponÃvel para cacheamento tanto em shared_buffers quanto no filesystem. É utilizado para fazer estimativas, não faz alocações efetivamente. -- Recomendação: Configurar entre 50% e 75% da memória disponÃvel. - -#### work_mem -Configura a quantidade máxima de memoria que uma consulta pode usar em dados temporários como ORDER BY, Hash Joins, Hash Aggregate e Window Functions. -- Recomendação: Depende da complexidade das queries. Além disso work_mem multiplicado por max_connections resulta no uso máximo de memória transiente. - -#### maintenance_work_mem -Configura a quantidade de memória disponÃvel para operações de manutenção como VACUUM, criação de indices e etc. - -#### wal_buffers - -#### effective_io_concurrency - -#### random_page_cost/seq_page_cost - -#### log_min_duration_statement -Configura o tempo de execução mÃnimo para uma consulta ser registrada no log, util para debugging. -- Recomendação: Por default é desativado com -1. Entretanto é interessante para estudar consultas que consomem mais de 1000ms(1 segundo). - - -## Particionamento de Tabelas -Em situações em que tabelas não possuem altas taxas de atualização de tuplas, mas sim de inserções ou deleções é possÃvel realizar o particionamento de tais tabelas para aumento de performance. - - ## Indexes Realizando alterações nos métodos de acesso aos dados das tabelas com a criação de Ãndices, embora possa reduzir a velocidade de escrita, pode aumentar a performance da árvore de consulta do postgres. -### Tipo\Casos de uso -#### B-Tree -B-Tree serve para ... - -#### Hash -Hash serve para ... - -#### Gist -Gist serve para ... - -#### SP-Gist -SP-Gist serve para ... - -#### Gin -Gin serve para ... - -#### Brin -Brin serve para ... - ### Indices em partição separada Para fins de aumento de performance, é possÃvel alterar o local em que o postgres armazena seus objetos como Ãndices em uma partição separada. Entretanto esse método apenas funciona de forma relevante se a velocidade de leitura e escrita for maior que a do diretório onde o cluster está. Uma solução mais interessante é cacheamento L2ARC com zfs de NVME ou SSD para todo o diretório do cluster. -- GitLab