Skip to main content

Vacuum Postgres

· One min read
Leandro Andrade
Leandro Andrade
Software Developer

Basicamente, vacuum é um utilitário de pós-processamento que limpa tuplas obsoletas (resultantes de operações de DELETE ou UPDATE) e recuperar espaço para reutilização.

Assim, quando essas operações são executadas, uma nova versão da linha é criada de modo que conexões que estão usando a versão mais antiga da linha possam continuar executando.

O link abaixo retrata um problema que foi percebido a partir no postgres 14:

O ponto é que a opção INDEX_CLEANUP no postgres 13 e anterior era ON. A partir do postgres 14 em diante, INDEX_CLEANUP foi alterada para AUTO, conforme documentação abaixo:

A solução é que essa opção seja ativada para ON a partir do postgres 14 em diante com o seguinte comando:

VACUUM (INDEX_CLEANUP ON) nome_da_tabela;

O link abaixo detalha a regressão de performance percebida no postgres 14:

Dicas de performance: