Sobes.tech
Middle+

Wat gebeurt er met Xmin en Xmax tijdens een UPDATE?

sobes.tech AI

Antwoord van AI

In PostgreSQL, bij het uitvoeren van een UPDATE-operatie wordt niet eenvoudigweg de rij gewijzigd, maar wordt in feite een nieuwe versie van de rij gecreëerd (MVCC — multi-versie concurrency control).

  • Xmin is de transactie-ID die de huidige versie van de rij heeft gemaakt (ingevoegd).
  • Xmax is de transactie-ID die de rij als verwijderd heeft gemarkeerd (bijvoorbeeld tijdens een UPDATE of DELETE).

Bij een UPDATE:

  1. Ontvangt de oude versie van de rij in het veld Xmax de ID van de huidige transactie die de UPDATE uitvoert — dit betekent dat deze versie nu wordt beschouwd als verwijderd voor nieuwe transacties.
  2. Er wordt een nieuwe versie van de rij gemaakt met een nieuwe Xmin — de ID van de huidige transactie, en een lege Xmax.

Zo is een UPDATE in wezen een DELETE van de oude versie + een INSERT van de nieuwe versie, wat zorgt voor transactie-isolatie en gegevensconsistentie.