Bloat (gonflement)
L'espace mort que MVCC laisse dans les tables et les index. Un UPDATE écrit en réalité une nouvelle version de la ligne et marque l'ancienne comme morte — l'espace n'est pas libéré tant que quelque chose ne nettoie pas.
Le nettoyage est le travail d'autovacuum : il rend les lignes mortes réutilisables, mais ne restitue normalement pas l'espace au système d'exploitation. Une table très souvent mise à jour peut donc occuper dix fois plus de place que ses données ne le justifient, avec pour conséquences un moins bon usage du cache et des parcours plus lents. La cause première la plus courante n'est pas qu'autovacuum soit désactivé, mais que quelque chose le bloque : une transaction de longue durée, un slot de réplication oublié ou une transaction préparée inutilisée maintiennent les lignes mortes « visibles » et impossibles à récupérer. Remèdes : pg_repack réécrit la table sans verrouiller, VACUUM FULL le fait avec un verrou exclusif.