Aller au contenu principal
Kill -9 Club
Se connecter

ligne morte

Bases de données

Une version de ligne que PostgreSQL a marquée comme n'étant plus visible : un UPDATE écrit une nouvelle version et marque l'ancienne comme morte, un DELETE se contente de la marquer. Rien n'est retiré sur le moment, parce que les transactions commencées avant ont encore le droit de voir l'ancienne version. Supprimer un million de lignes ajoute donc du travail sans rien libérer, et df -h ne bouge pas : c'est le comportement attendu, pas un DELETE qui a échoué. Une fois le nettoyage passé, l'espace devient réutilisable par cette table — il n'est pas rendu au système de fichiers. Seul VACUUM FULL réécrit la table dans un nouveau fichier et fait enfin bouger df, au prix d'un verrou exclusif qui coupe lectures et écritures. Le compte se lit dans n_dead_tup, colonne de pg_stat_user_tables, à côté de last_autovacuum qui dit si quelqu'un s'en est occupé et quand.

Aussi écrit : dead tuple, n_dead_tup

ligne morte — définition | Kill -9 Club