Colaboração: Fabio Mengue
Data de Publicação: 24 de Fevereiro de 2003
Encontrei a dica na documentação do postgres. Existe também uma seção dedicada exclusivamente a melhoria de performance.
Basicamente, a dica diz que uma das tarefas mais importantes do administrador do postgres é schedular o comando vacuumdb -a
. /Esse comando deve ser executado periodicamente (desde todo dia ate algumas vezes por mes, dependendo do uso das tabelas), quando o postgres estiver com a menor carga possivel. O comando também pode ser usado para adquirir informação sobre os índices que tornam a performance ainda melhor para SELECT's complexos (vacuumdb -a -z
).
A execução periodica do vacuumdb
é importante pois o postgres guarda seus dados em arquivos binários em disco. Quando acontece um UPDATE
ou DELETE,
o registro propriamente dito não é alterado; o postgres inclui um novo registro e marca o registro antigo como expirado. Assim, a base cresce sem parar, e torna a pesquisa mais lenta (principalmente nos casos onde o SELECT
usa campos que não fazem parte do índice, pois o postgres tem que varrer o arquivo inteiro para formar o resultado).