Carte de visibilité Visibility map
Deux bits par page de données indiquant si tout ce qu'elle contient est visible pour tout le monde, et si tout y est gelé. Une structure minuscule sur laquelle reposent entièrement deux grosses optimisations.
La première est le parcours d'index seul (index-only scan). Un index contient les valeurs mais rien sur la visibilité : pour savoir si une ligne est à jour pour votre transaction, il faudrait normalement lire quand même la table — ce qui annule tout l'intérêt de l'éviter. Si la page est marquée all-visible, Postgres peut se passer de cette lecture. La seconde est le vacuum : les pages déjà marquées n'ont pas besoin d'être examinées, ce qui explique qu'un nettoyage d'une table énorme mais peu modifiée puisse se terminer en quelques secondes. Le bit « frozen » permet en outre à la passe de gel agressive de sauter des pages, ce qui garde le problème du bouclage (wraparound) gérable sur les grosses tables.