Sobes.tech
Senior

O que faz o VACUUM no PostgreSQL e por que aparecem linhas mortas?

sobes.tech IA

Resposta da IA

No PostgreSQL, ao atualizar ou eliminar linhas, as versões antigas das linhas não são removidas imediatamente, mas tornam-se "mortas" (dead tuples). Isto está relacionado com MVCC (controle de concorrência multiversão), que garante o isolamento das transações. As linhas mortas ocupam espaço e podem atrasar o desempenho da base de dados.

O comando VACUUM limpa estas linhas mortas, libertando espaço e prevenindo o crescimento de tabelas e índices. Existe um VACUUM normal, que apenas marca o espaço como livre, e um VACUUM FULL, que também comprime a tabela, reduzindo o seu tamanho físico.

Exemplo:

VACUUM minha_tabela;

Assim, o VACUUM mantém o desempenho e evita o uso excessivo de espaço em disco.