CodeBlanks Logo Icon CodeBlanks

Deadlock

Karşılıklı beklema tıkanıklığını öğrenirsin.

Deadlock

Deadlock iki işlemin birbirinin kilidini beklemesidir. Çözülmeyen bekleme olur.

-- İşlem 1: A'yı kilitle, B'yi bekle
-- İşlem 2: B'yi kilitle, A'yı bekle → deadlock

Örnekte: karşılıklı bekleme.

Deadlock — ayrıntı

Veritabanı deadlock'u algılar ve bir işlemi feda eder. Diğeri devam eder.

Deadlock'u azaltmak için tüm işlemlerde tabloları ve satırları aynı sırayla kilitlemek ve işlemleri kısa tutmak en etkili yöntemdir.

Uygulama Deadlock

Deadlock'u önlemek için kaynakları aynı sırayla kilitleyen bir sorgu yaz.

Başlangıç kodu

query.sql
-- deadlock önle
SELECT * FROM accounts WHERE id = 1

Örnek çözüm

query.sql
SELECT * FROM accounts WHERE id = 1 FOR UPDATE;

Beklenen çıktı

id  balance
1   500

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Deadlock: kavramları eşleştir

Kavram Anlamı
deadlock ölüm kilidi
karşılıklı bekleme
feda bir işlem
algıla otomatik

2 Deadlock

Soru
____ → karşılıklı bekleme
Cevap
Deadlock → karşılıklı bekleme

Açıklama: Deadlock doğru cevap.

3 Deadlock ne demektir?

  • Karşılıklı bekleme Doğru cevap
  • Otomatik commit
  • Hızlı kilit
  • İndeks sorun

Açıklama: Deadlock iki işlemin karşılıklı beklemesidir.

İleri seviye bölümündeki tüm dersler