Bölüm 19: OzExplain - Yürütme Ağacı ve Index Danışmanı
Bilgi: Bu bölüm; desteklenen
EXPLAINçıktısını görsel yürütme ağacına dönüştürmeyi, tahmini ve gerçek satır sapması uyarılarını ve index önerilerini açıklar. Kullanılabilirlik, sunucunun kapasite sorgulamasına bağlıdır.
Bu bölümde:
- 19.1 Görsel Yürütme Ağacı
- 19.2 Tahmini ve Gerçek Satır Karşılaştırması
- 19.3 Index Önerileri
- İlgili Konular
19.1 Görsel Yürütme Ağacı
Bir okuma sorgusu seçip Cmd + E tuşlarına bastığınızda OzExplain, mevcut EXPLAIN çıktısını renkli düğümler olarak görselleştirir. SQLite ve istenen explain formunu sunmayan sunucular, karşılık gelen kullanılamaz/hata durumunu gösterir.
- Kırmızı düğümler (darboğazlar): Full Table Scan (
ALL), disk tabanlıfilesortveyausing temporarygibi verimsiz adımlar. - Yeşil düğümler (hızlı adımlar): Primary key veya B-Tree index kullanan adımlar.
Bu görünüm, sorgunun hangi noktasının darboğaz oluşturduğunu bir bakışta belirlemenizi sağlar.
19.2 Tahmini ve Gerçek Satır Karşılaştırması
Bağlı sunucu analyze formunu desteklediğinde OzExplain, optimize edici tarafından tahmin edilen taranan satır sayısını gerçek satırlarla karşılaştırır. MySQL EXPLAIN ANALYZE kullanır; MariaDB desteklenen ANALYZE formunu kullanır. SQLite’ın EXPLAIN ANALYZE yolu yoktur.
Sapma 3 katı aştığında düğümde şu uyarı görünür:
ANALYZE TABLE orders; -- Gerçek satırlar (450.000), tahmini (1.000) 450 kat aşıyor
İpucu: Bu uyarı, veritabanı istatistiklerinin eski olduğunu ve
ANALYZE TABLEçalıştırılması gerektiğini gösterir.
19.3 Index Önerileri
Full Table Scan (ALL) tespit edildiğinde OzExplain, taranan tablo için bir index önerisi gösterebilir:
CREATE INDEX idx_orders_opt ON orders (<filtre_sütunları>);
Öneri, önerilen bir ifade şeklidir; SQLOZ bu görünümde filtre sütunlarını çıkarmaz. Gerçek iş yüküne karşı sütunları gözden geçirin ve normal güvenlik kapısı aracılığıyla uygulayın; SQLOZ index’i sessizce oluşturmaz.