SQL sorgu iyileştirme
Yürütme planlarını okur, B-ağacı indekslerin nasıl çalıştığını, birleştirme algoritmalarını ve istatistikleri kavrar, yavaş sorguları ölçerek hızlandırırsın.
Seviye 401 · 18 ders · 15 pratik lab
Dersler
Planı okumak
- Bir sorgunun yolculuğu: ayrıştırma, planlama, yürütme
- EXPLAIN ve EXPLAIN ANALYZE
- Tarama türleri: sıralı, indeks, yalnız indeks
- Birleştirme algoritmaları: iç içe döngü, hash, birleştirerek
- İstatistikler ve satır tahmini
- Kısa görev: beş planı yorumla
İndeksler
- B-ağacı nasıl çalışır
- Bileşik indekste sütun sırası
- Kapsayan indeksler
- İndeksi kullanabilen koşullar
- İndeksin yazma maliyeti ve gereğinden fazla indeks
- Kısa görev: bir rapor sorgusu için indeks tasarla
Sorguyu yeniden yazmak
- Alt sorguları yeniden yazmak
- Anahtar kümesiyle sayfalama
- N+1 sorgu sorunu
- Toplu işlemler ve parti boyutu
- Plan gerilemeleri ve parametreli sorgular
- Bitirme görevi: yavaş bir uygulamanın en kötü on sorgusu
Pratik lablar
- Plandaki tam taramayı bul: EXPLAIN çıktısında tam tablo taramasını bul ve neden seçildiğini açıkla.
- Tahmin ile gerçek satırı karşılaştır: EXPLAIN ANALYZE'da tahmini satır sayısı yüz kat yanılan adımı bul ve istatistikleri güncelleyip planı düzelt.
- Yanlış birleştirme algoritmasını yakala: Büyük iki tablo için iç içe döngü seçen bir planı bul ve hash join seçilmesini sağlayan değişikliği yap.
- Yavaş sorguya doğru indeksi ekle: Müşteri e-postasıyla arama yapan yavaş sorguya indeks ekleyip öncesi ve sonrası süreyi ölç.
- Bileşik indeksin sütun sırasını düzelt: Durum ve tarihe göre süzen rapor sorgusunun indeksi kullanmamasının nedenini bul ve sütun sırasını değiştir.
- Raporu kapsayan indeksle hızlandır: Tabloya hiç dönmeden çalışacak kapsayan bir indeks tasarla ve fazladan yazma maliyetini ölç.
- Fonksiyon sarılı sütunu indeks dostu yap: YEAR(tarih) koşulunu aralık koşuluna çevirerek indeksin kullanılmasını sağla.
- Baştaki joker karakterli aramayı çöz: %kelime% araması yapan ürün sorgusunu ölç ve indekslenebilir bir alternatifle değiştir.
- Örtük tür dönüşümünü bul: Sayısal karşılaştırma yüzünden metin sütunundaki indeksi atlayan sorguyu planla bul ve düzelt.
- OFFSET sayfalamasını anahtarla değiştir: Son sayfalarda yavaşlayan OFFSET sayfalamasını anahtar tabanlı sayfalamaya çevir ve süreleri karşılaştır.
- N+1 sorgu desenini tek sorguya indir: Her sipariş için ayrı ürün sorgusu atan betiği tek bir birleştirmeli sorguyla değiştir.
- İlişkili alt sorguyu birleştirmeye çevir: Her satır için çalışan ilişkili alt sorguyu türetilmiş tablo ile yeniden yaz ve planları karşılaştır.
- Toplu eklemeyi gruplayarak hızlandır: Satır satır 50 bin kayıt ekleyen betiği toplu eklemeye çevir ve en iyi grup boyutunu bul.
- Büyük silmeyi parçalara böl: Tabloyu dakikalarca kilitleyen eski kayıt silme işini küçük parçalarla çalışacak hale getir.
- Parametreye göre bozulan planı çöz: Nadir bir müşteri için hızlı, büyük müşteri için çok yavaş çalışan hazır sorgunun plan sorununu bul ve düzelt.
Kurs hakkında
Yürütme planlarını okur, B-ağacı indekslerin nasıl çalıştığını, birleştirme algoritmalarını ve istatistikleri kavrar, yavaş sorguları ölçerek hızlandırırsın.
Ne öğreneceksin
- Planı okumak
- İndeksler
- Sorguyu yeniden yazmak
Ön koşullar
Aynı yolun 301 düzeyine kadar olan konularını uygulamış olmalısın.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde ve ona bağlı özel bir lab ağında geçer. Kurulum gerekmez.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 401 düzeyindedir; daha düşük düzeydeki kursların konularını bildiğin varsayılır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.