Giriş
Yavaş bir SQL sorgusunun çoğu zaman tek bir nedeni vardır: veritabanı motoru, sorguyu çalıştırmak için gereğinden fazla satırı taramak zorunda kalıyordur. Bu yazı, bunun en sık iki nedenine odaklanıyor.
Doğru Index Kullanımı
WHERE ve JOIN koşullarında sık kullanılan
sütunlara index eklemek, çoğu zaman en yüksek etkiyi yaratan tek
değişikliktir.
-- Yavaş: full table scan
SELECT * FROM siparisler WHERE musteri_id = 4521;
-- Index eklendikten sonra aynı sorgu çok daha hızlı çalışır
CREATE INDEX idx_siparisler_musteri ON siparisler(musteri_id);
-- EXPLAIN ile planı kontrol et
EXPLAIN ANALYZE
SELECT * FROM siparisler WHERE musteri_id = 4521;
TANIM
EXPLAIN ANALYZE
Veritabanı motorunun sorguyu nasıl çalıştırmayı planladığını ve gerçekte ne kadar sürdüğünü gösteren bir komuttur — "neden yavaş" sorusunun cevabı neredeyse her zaman burada saklıdır.
JOIN Sırası
Modern veritabanı motorları JOIN sırasını genellikle kendileri optimize eder, ama büyük tablolarda küçük bir filtreyi mümkün olduğunca erken uygulamak (alt sorgu veya CTE ile) sorgu planını iyileştirebilir.
Sonuç
Performans ayarlaması bir kerelik iş değildir — veri büyüdükçe
eski indexler yetersiz kalabilir. EXPLAIN ANALYZE'ı
düzenli bir alışkanlık hâline getirmek en kalıcı çözümdür.