Vacuum Postgres
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:
- https://www.youtube.com/watch?v=YON9PliOYFk
- https://www.youtube.com/watch?v=m8ogrogKjXo
- https://www.youtube.com/watch?v=D832gi8Qrv4
- https://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/Appendix.PostgreSQL.CommonDBATasks.Autovacuum.html
- https://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/CHAP_BestPractices.html#CHAP_BestPractices.PostgreSQL