Pour permettre une concurrence plus importante, PostgreSQL utilise le système de contrôle de la concurrence multiversion (MVCC) pour enregistrer les lignes. Néanmoins, MVCC a quelques inconvénients pour les requêtes de mise à jour. Typiquement, les mises à jour nécessitent que les nouvelles versions des lignes soient ajoutées aux tables. Ceci peut aussi nécessiter de nouveaux enregistrements dans les index pour chaque ligne mise à jour, et la suppression des anciennes versions de lignes et des enregistrements d'index peut être très coûteuse.
Pour aider à réduire la surcharge impliquée par les mises à jour, PostgreSQL dispose d'une optimisation appelée heap-only tuples (HOT). Cette optimisation est possible quand :
La mise à jour ne modifie aucune colonne référencée par les index de la table, ceci incluant les index d'expressions et les index partiels.
Il y a suffisamment d'espace libre dans le bloc contenant l'ancienne version de la ligne mise à jour.
Dans de tels cas, les enregistements heap-only tuples fournissent deux optimisations :
De nouveaux enregistrements d'index ne sont pas nécessaire pour représenter les lignes mises à jour.
      Les anciennes versions des lignes mises à jour peuvent être complètement
      supprimées lors des opérations normales, ceci incluant les
      SELECT, au lieu de nécessiter des opérations
      périodiques de nettoyage (vacuum). (C'est possible car les index ne
      référencent pas leurs identifiants
      d'éléments dans le bloc.)
     
   En résumé, les mises à jour heap-only tuple
   peuvent seulement être créées si les colonnes utilisées par les index ne sont
   pas mises à jour. Vous pouvez augmenter la probabilité d'un espace de
   stockage suffisant pour les mises à jour HOT en réduisant
   le paramètre fillfactor d'une table.
   Si vous ne le faites pas, les mises à jour HOT
   surviendront toujours parce que les nouvelles lignes migreront naturellement
   vers de nouveaux blocs et des blocs existants avec suffisamment d'espace pour
   les nouvelles versions de ligne. La vue système pg_stat_all_tables permet la
   supervision de la réalisation de mises à jour HOT et non HOT.