PostgreSQL transaction izolasyon seviyelerini biliyor musun?
sobes.tech yapay zeka
AI'dan gelen yanıt
PostgreSQL'de, SQL standardine göre belirlenmiş dört izolasyon seviyesi vardır:
-
Read Uncommitted — en düşük izolasyon seviyesidir. Henüz onaylanmamış verileri (kirli okuma) okuyabilir. PostgreSQL'de, aslında, Kirli Okuma desteklenmediği için, Read Committed gibi davranır.
-
Read Committed — varsayılan seviyedir. Bir işlem, her bireysel sorgunun başında onaylanan verileri görür. İşlem içindeki sorgular arasında diğer işlemler tarafından yapılan değişiklikler ortaya çıkabilir.
-
Repeatable Read — işlem, başlatıldığı anda alınan bir veri anlık görüntüsünü görür. İşlem içindeki tüm sorgular aynı verileri görür, diğer işlemler onları değiştirip onaylasalar bile. Tekrarlanamayan okuma (non-repeatable read) önler, ancak hayalet okuma (phantom read) izin verir.
-
Serializable — en katı izolasyon seviyesidir. İşlemlerin tam sıralanmasını garanti eder, hayalet okuma önler ve işlemlerin sıralı yürütülmesine eşdeğer davranış sağlar.
İzolasyon seviyesinin ayarlanması örneği:
BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ;
-- SQL işlemleri
COMMIT;