Sobes.tech
Middle+

Güncelleme sırasında Xmin ve Xmax ile ne olur?

sobes.tech yapay zeka

AI'dan gelen yanıt

PostgreSQL'de bir UPDATE işlemi sırasında, sadece satır değiştirilmiyor, aslında yeni bir satır versiyonu oluşturuluyor (MVCC — çok sürümlü eşzamanlılık kontrolü).

  • Xmin, mevcut satır versiyonunu oluşturan (ekleyen) işlemin kimliğidir.
  • Xmax, satırı silmiş (örneğin, UPDATE veya DELETE sırasında) işlemin kimliğidir.

Bir UPDATE sırasında:

  1. Eski satır versiyonuna, güncel işlemin kimliği olan Xmax değeri atanır — bu, bu versiyonun artık yeni işlemler için silinmiş sayıldığı anlamına gelir.
  2. Yeni bir satır versiyonu, yeni bir Xmin ile — güncel işlemin kimliği — ve boş bir Xmax ile oluşturulur.

Bu şekilde, UPDATE aslında eski versiyonun DELETE edilmesi + yeni versiyonun INSERT edilmesi gibidir, bu da işlem izolasyonunu ve veri tutarlılığını sağlar.