Sobes.tech
Senior

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:

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

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

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

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