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.

SQL
-- 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.