PrestaShop mağazalarında “MySQL çok yükleniyor” şikâyetinin nedeni çoğu zaman tek bir yavaş sorgu değil; tekrar eden filtre sorguları, kötü indeks, cron çakışması, cache yeniden üretimi veya üçüncü parti modül davranışıdır.
Teşhis sırası
- Process list: O anda çalışan ve bekleyen sorguları görün.
- Slow query log: Anlık değil tekrarlı davranışı yakalayın.
- EXPLAIN: Tam tablo taraması, yanlış join sırası ve kullanılmayan indeksleri inceleyin.
- Kaynak eşleştirme: SQL'i hangi modül/controller/cron üretiyor bulun.
- Tekrarlama oranı: Aynı sorgu saniyede kaç kez çalışıyor ölçün.
- Lock analizi: Uzun transaction veya tablo kilitlerini kontrol edin.
PrestaShop özelinde sık nedenler
- Faceted Search filtre/cache üretimi
- Çok büyük
ps_connections, log veya arama tabloları - Yanlış yazılmış dashboard/istatistik modülleri
- Her sayfa yüklemesinde toplu veri hesaplayan hook'lar
- Cron görevinin bir önceki işlem bitmeden yeniden başlaması
- Ürün kombinasyonu ve kategori sorgularında eksik indeks
Çözüm yaklaşımı
“Bu sorguyu KILL edelim” geçici müdahaledir. Kalıcı çözüm; sorgu kaynağını bulmak, doğru indeks/sorgu tasarımını yapmak, işi gerekiyorsa batch/queue yapısına taşımak ve cron kilidi eklemektir.