Qual a função do comando VACUUM?

De Wiki
Ir para: navegação, pesquisa

NOTA: Caso você não possua acesso ao banco de dados PostgreSQL, solicite-o através do link Fale Conosco no Painel de Controle da CentralServer.


Para prover o modelo de banco de dados MVCC (Multiversion Concurrency Control), o PostgreSQL mantém um histórico dos registros deletados ou atualizados, para que possa voltar a um estado anterior da base de dados caso uma transação não tenha sucesso. O comando VACUUM reaproveita os espaços deixados por registros atualizados ou deletados, marcando-os para que sejam reutilizados para novos dados.

A fim de manter a performance do banco de dados PostgreSQL do seu domínio, executamos automaticamente o comando VACUUM uma vez por dia, durante a noite. Neste processo, é executado o VACUUM ANALYZE que não bloqueia as tabelas do banco.

O VACUUM ANALYZE não libera espaço em disco, pois apenas marca os registros para serem reutilizados, mantendo o tamanho físico das tabelas. Para que o processo seja mais completo e faça a liberação de espaço, execute o seguinte comando em seu banco de dados:


VACUUM FULL

O processo VACUUM FULL é mais demorado que o VACUUM ANALYZE por ter que reordenar os registros das tabelas, além de exigir que as tabelas fiquem no modo exclusivo (bloqueadas), não podendo ser modificadas enquanto não concluir o processo.

Cabe destacar que, no ambiente compartilhado, a execução do VACUUM FULL pode ser interrompida caso resulte em sobrecarga do servidor de banco de dados.