Deadlock
- SQL kursu
- İleri seviye
- Ders 62/81
- 4 dk
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
-- deadlock önle
SELECT * FROM accounts WHERE id = 1Örnek çözüm
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
____ → karşılıklı bekleme
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.