SQL'de hangi izolasyon seviyeleri vardır?
sobes.tech yapay zeka
AI'dan gelen yanıt
SQL'de işlem izolasyon seviyeleri, verilerin paralel işlemlerden ne kadar korunduğunu belirler. Potansiyel sorunlara: kirli okuma, tekrarlanamayan okuma ve hayalet okuma etkiler.
SQL standardı dört izolasyon seviyesi tanımlar:
-
Read Uncommitted: En düşük seviye. Bir işlem, diğer işlemlerin onaylanmamış (kirli) verilerini okuyabilir.
- İzin verir: kirli okuma, tekrarlanamayan okuma, hayalet okuma.
-
Read Committed: İşlem yalnızca onaylanmış verileri okuyabilir. Kirli okuma sorunu yoktur.
- İzin verir: tekrarlanamayan okuma, hayalet okuma.
-
Repeatable Read: İşlem, tekrar okuma sırasında aynı verileri göreceğini garanti eder. İşlem sırasında okunan veriler, başka bir işlem tarafından değiştirilemez veya silinemez.
- İzin verir: hayalet okuma.
-
Serializable: En yüksek seviye. İşlemler sıralı olarak yürütülür, sanki biri diğerinin ardından çalışıyormuş gibi. Yukarıdaki tüm sorunları tamamen önler.
Sorunlar ve izolasyon seviyeleri özet tablosu:
| Sorun | Read Uncommitted | Read Committed | Repeatable Read | Serializable |
|---|---|---|---|---|
| Kirli Okuma | Mümkün | Mümkün | Mümkün | Mümkün |
| Tekrarlanamayan Okuma | Mümkün | Mümkün | Mümkün | Mümkün |
| Hayalet Okuma | Mümkün | Mümkün | Mümkün | Mümkün |
İzolasyon seviyesinin seçimi, uygulamanın veri tutarlılığı ve performans gereksinimlerine bağlıdır. Daha yüksek seviyeler daha büyük bütünlük sağlar, ancak kilitlemelerin artması nedeniyle performansı azaltabilir. Varsayılan seviye genellikle kullanılan veritabanı sistemine bağlıdır (örneğin, PostgreSQL ve Oracle'da varsayılan Read Committed, MySQL'de Repeatable Read).