Sobes.tech
Senior

Que fait VACUUM dans PostgreSQL et pourquoi des lignes mortes apparaissent-elles?

sobes.tech IA

Réponse de l'IA

Dans PostgreSQL, lors de la mise à jour ou de la suppression de lignes, les anciennes versions des lignes ne sont pas supprimées immédiatement, mais deviennent des "tuples morts" (dead tuples). Cela est lié à MVCC (contrôle de concurrence multiversion), qui assure l'isolation des transactions. Les lignes mortes occupent de l'espace et peuvent ralentir la base de données.

La commande VACUUM nettoie ces lignes mortes, libérant de l'espace et empêchant la croissance des tables et des index. Il existe un VACUUM normal, qui marque simplement l'espace comme libre, et un VACUUM FULL, qui compresse en plus la table, réduisant sa taille physique.

Exemple:

VACUUM ma_table;

Ainsi, VACUUM maintient la performance et évite une utilisation excessive de l'espace disque.