Middle+
Šta se dešava sa Xmin i Xmax tokom UPDATE-a?
sobes.tech АИ
Одговор од АИ
U PostgreSQL-u, prilikom izvršavanja operacije UPDATE, ne dolazi do jednostavne izmene reda, već se zapravo kreira nova verzija reda (MVCC — viševerzijsko upravljanje konkurencijom).
- Xmin je identifikator transakcije koja je kreirala (ubacila) trenutnu verziju reda.
- Xmax je identifikator transakcije koja je označila red kao obrisan (npr., pri UPDATE ili DELETE).
Kod UPDATE:
- Stara verzija reda dobija u polju Xmax identifikator trenutne transakcije koja vrši UPDATE — što znači da se ova verzija sada smatra obrisanom za nove transakcije.
- Kreira se nova verzija reda sa novim Xmin — identifikatorom trenutne transakcije, i praznim Xmax.
Na ovaj način, UPDATE je u suštini DELETE stare verzije + INSERT nove verzije, što omogućava obezbeđivanje izolacije transakcija i konzistentnosti podataka.