Quando executamos operações que permitem eliminar dados de uma tabela num qualquer sistema de gestão de base de dados (DBMS), como o PostgreSQL, MySQL, Microsoft SQL Server, etc., os registos não são imediatamente removidos do disco. Em vez disso, são marcados como "mortos" ou "obsoletos" e deixados no local. Isto sucede por razões de desempenho (para o processo não ser tão demorado) e razões de integridade dos dados.
E é aqui que entram os comandos vacuum ou vacuum full que têm como objetivo limpar estes registos obsoletos.
VACUUM nome_da_tabela:
- O VACUUM é um comando utilizado para recuperar espaço físico de uma tabela, eliminando todos os registos marcados como obsoletos, sem mover a tabela para um novo espaço no disco;
- O VACUUM é menos evasivo e mais rápido do que o VACUUM FULL, pois este, apenas marca o espaço do registo eliminado como livre para ser reutilizado, mas não compacta a tabela, o que quer dizer que ao fazer um novo INSERT o DBMS tenta aproveitar este espaço antes de alocar um novo espaço no disco. Isso ajuda a melhorar o desempenho e a eficiência, pois reutiliza espaço existente em vez de alocar constantemente novas páginas de dados (novo espaço em disco);
- É adequado na maioria das operações de manutenção de tabelas.
VACUUM FULL nome_da_tabela":
- O VACUUM FULL é uma operação mais evasiva em termos de recursos e tempo, pois para além do espaço recuperado, como no comando anterior, também reorganiza fisicamente a tabela no disco, movendo todos os registos válidos para um novo espaço, eliminando assim todo o espaço não utilizado;
- Pelas suas características evasivas, é mais demorado e consome mais recursos do que o VACUUM. Geralmente, é executado com menos frequência e em situações em que se precisa de uma otimização mais profunda na tabela;
- É útil quando uma tabela já sofreu muitas alterações (inserções, atualizações e eliminações) para se otimizar o espaço e o desempenho futuro da tabela de forma mais profunda.
Para ver mais artigos relacionados, clique: aqui!
👉 Follow @niuGIS