PostgreSQL ტრანზაქციის იზოლაციის დონეებს იცნობთ?
sobes.tech AI
პასუხი AI-სგან
PostgreSQL-ში, SQL სტანდარტით განსაზღვრულია ოთხი ტრანზაქციის იზოლაციის დონე:
-
Read Uncommitted — ყველაზე დაბალი იზოლაციის დონე. საშუალებას აძლევს წაიკითხოს მონაცემები, რომლებიც ჯერ კიდევ არ არის დადასტურებული (dirty reads). PostgreSQL-ში, პრაქტიკულად, ის როგორც Read Committed მუშაობს, რადგან dirty reads მხარდაჭერილი არ არის.
-
Read Committed — დეფოლტ დონე. ტრანზაქცია ხედავს მხოლოდ იმ მონაცემებს, რომლებიც დადასტურებულია თითოეული ცალკეული სარეკლამო მოთხოვნის დროს. ტრანზაქციის შიგნით სხვა ტრანზაქციების მიერ განხორციელებული ცვლილებები შეიძლება მოხდეს.
-
Repeatable Read — ტრანზაქცია ხედავს მონაცემების სურათს მისი დაწყების დროს. ყველა მოთხოვნა within ტრანზაქციის ხედავს ერთსა და იმავე მონაცემებს, მიუხედავად იმისა, რომ სხვა ტრანზაქციები მათ შეცვლიან და დადასტურებენ. თავიდან აცილება non-repeatable read-ებს, მაგრამ ფანტომური წაკითხვების დაშვება.
-
Serializable — ყველაზე მკაცრი იზოლაციის დონე. უზრუნველყოფს ტრანზაქციების სრული სერილიზაციას, ფანტომური წაკითხვების თავიდან აცილებას და უზრუნველყოფს სქემას, რომელიც თანხვედრია სერიული შესრულებისთან.
მაგალითი იზოლაციის დონესთან დაკავშირებული:
BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ;
-- SQL ოპერაციები
COMMIT;