Middle+
Ինչ է տեղի ունենում Xmin և Xmax- ի հետ թարմացման ժամանակ?
sobes.tech AI
Պատասխան AI-ից
PostgreSQL-ում, երբ կատարվում է UPDATE գործողություն, ոչ միայն փոփոխվում է տողը, այլ իրականում ստեղծվում է նոր տարբերակ տողի (MVCC — բազմասեռմակային մրցակցություն):
- Xmin — դա է այն տրանսակցիայի նույնականացուցիչը, որը ստեղծել է (ներմուծել) ընթացիկ տողի տարբերակը:
- Xmax — դա է այն տրանսակցիայի նույնականացուցիչը, որը նշեց տողը որպես ջնջված (օրինակ, UPDATE կամ DELETE ժամանակ):
UPDATE-ի ժամանակ՝
- Հին տարբերակն ստանում է Xmax դաշտում ընթացիկ տրանսակցիայի նույնականացուցիչը՝ որը կատարում է UPDATE-ը — սա նշանակում է, որ այս տարբերակը այժմ համարվում է ջնջված նոր տրանսակցիաների համար:
- Ստեղծվում է նոր տարբերակ տողի՝ նոր Xmin-ով՝ ընթացիկ տրանսակցիայի նույնականացուցիչով, և դատարկ Xmax-ով:
Այսպիսով, UPDATE-ը հիմնականում հնացած տարբերակի DELETE-ն + նոր տարբերակի INSERT-ն է, ինչը ապահովում է տրանսակցիաների առանձնացում և տվյալների համահունչություն։