Sobes.tech
Senior

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:

  1. 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.

  2. 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.

  3. 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.

  4. 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;