PostgreSQL tranzaksiya izolasiya səviyyələrini bilirsinizmi?
sobes.tech Süni İntellekt
AI-dan cavab
PostgreSQL-də, SQL standartına uyğun olaraq, dörd tranzaksiya izolasiya səviyyəsi mövcuddur:
-
Read Uncommitted — ən aşağı izolasiya səviyyəsidir. Hələ təsdiqlənməmiş məlumatları (dirty reads) oxumağa imkan verir. PostgreSQL-də, əslində, dirty reads dəstəklənmədiyi üçün, Read Committed kimi davranır.
-
Read Committed — standart səviyyə. Transaksiya yalnız hər bir fərdi sorğunun başlanğıcında təsdiqlənmiş məlumatları görür. Transaksiya daxilindəki sorğular arasında digər tranzaksiyalar tərəfindən edilən dəyişikliklər baş verə bilər.
-
Repeatable Read — tranzaksiya başlanğıcında alınan məlumatların anlıq görüntüsünü görür. Transaksiya daxilindəki bütün sorğular eyni məlumatları görür, hətta digər tranzaksiyalar onları dəyişsə və təsdiqləsə belə. Yenidən oxuma (non-repeatable read) qarşısını alır, lakin phantom oxumağa icazə verir.
-
Serializable — ən sərt izolasiya səviyyəsidir. Tam serializasiya təmin edir, phantom oxumaları qarşısını alır və ardıcıl icra ilə bərabər davranış təmin edir.
İzolasiya səviyyəsinin qurulması nümunəsi:
BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ;
-- SQL əməliyyatları
COMMIT;