Sobes.tech
Junior — Middle

İşlemler ve veritabanları bağlamında Phantom okuma nedir açıklayabilir misiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Hayalet okuma — bu, aynı sorgunun bir işlem içinde tekrar çalıştırılması sırasında yeni satırların ortaya çıkması durumudur; bu satırlar ilk okuma sırasında görünmüyordu.

Örnek:

  1. T1 işlemi SELECT * FROM orders WHERE status = 'new' sorgusunu çalıştırır ve 5 kayıt alır.
  2. T1 tamamlanmadan başka bir T2 işlemi yeni bir kayıt ekler ve değişiklikleri onaylar.
  3. T1 aynı sorguyu tekrar çalıştırırsa, artık 6 kayıt görecektir — yeni satır "hayalet" olarak ortaya çıkmıştır.

Hayalet okuma, sorgu koşulunu karşılayan satırların aralığının iki okuma arasında değişmesi nedeniyle oluşur.

Hayalet okumayı önlemek için SERIALIZABLE izolasyon seviyesi kullanılır; bu, veri aralıklarını kilitler ve okuma işlemleri arasında yeni satırların ortaya çıkmasını engeller. READ COMMITTED veya REPEATABLE READ seviyelerinde hayaletler oluşabilir.