À quoi sert VACUUM dans PostgreSQL ? Expliquez la différence entre VACUUM et VACUUM FULL.
sobes.tech IA
Réponse de l'IA
Dans PostgreSQL, la commande VACUUM est utilisée pour nettoyer la base de données des lignes 'mortes' qui restent après les opérations UPDATE et DELETE. Cela est nécessaire car PostgreSQL utilise MVCC (contrôle de concurrence multiversion), et les anciennes versions des lignes ne sont pas supprimées immédiatement pour assurer la cohérence des transactions.
VACUUM libère de l'espace, le rendant disponible pour une réutilisation à l'intérieur de la table, mais ne réduit pas la taille physique des fichiers sur le disque.
VACUUM FULL est une opération plus 'lourde' qui non seulement nettoie les lignes mortes, mais compresse également la table, réduisant sa taille physique sur le disque. Cependant, VACUUM FULL bloque la table en écriture, ce qui peut entraîner des retards.
Exemple d'utilisation:
VACUUM my_table; -- nettoyage normal
VACUUM FULL my_table; -- compression et réduction de taille
Il est généralement recommandé d'effectuer régulièrement un VACUUM normal, et d'utiliser VACUUM FULL uniquement lorsque cela est nécessaire pour libérer de l'espace disque ou après des suppressions massives.