MySQL Yavaş Sorgu Sayısı Arttı: Regresyon ve COLLSCAN Triyajı
Slow_queries artışını baz çizgiyle karşılaştırır; digest, full scan ve diske taşan geçici tablolar üzerinden sorgu regresyonunun nedenini arar.
Operasyonel Güvenlik ve Risk Uyarısı
Bu runbook müdahale adımları içerir; birçok adım yazma etkilidir (KILL, terminate, DROP, RESIZE). Önce test ortamında deneyin, üretimde adımları sırayla ve doğrulayarak uygulayın.
1. Belirti / Symptom
- M18 (`Slow_queries` artış hızı) baz çizginin birkaç katına çıkar; p95/p99 gecikmesi, uygulama timeout'ları artar.
2. Etki / Impact
İşlem süreleri uzar, aktif bağlantılar birikir ve çağrı zincirinde zaman aşımı oluşabilir.
3. Teşhis / Diagnosis
SELECT VERSION(), @@GLOBAL.long_query_time, @@GLOBAL.slow_query_log;
SHOW GLOBAL STATUS LIKE 'Slow_queries';`Slow_queries` kümülatiftir; hız için iki örnek arasındaki farkı alın. `long_query_time` veya log ayarı yakın zamanda değiştiyse eski baz çizgiyle kıyas yanıltıcı olabilir.
SELECT LEFT(digest_text,160) AS pattern, count_star,
ROUND(sum_timer_wait/1e12,2) AS total_s,
ROUND(avg_timer_wait/1e9,2) AS mean_ms,
sum_rows_examined, sum_rows_sent, sum_no_index_used
FROM performance_schema.events_statements_summary_by_digest
WHERE schema_name IS NOT NULL ORDER BY sum_timer_wait DESC LIMIT 20;4. Müdahale / Response
5. Doğrulama / Verification
- Yavaş sorgu hızı, p95 gecikmesi ve hata oranı baz çizgiye döner; `EXPLAIN` ve taranan satır sayısı iyileşir.
- Değişiklikten sonra replica gecikmesi ve yazma maliyeti artmaz.
6. Geri Alma / Rollback
- Geçici açılan slow log'u eski değere döndürün; sorgu dağıtımını veya batch hızını eski duruma alın.
- İndeksi kaldırma işlemini ayrıca test edip bakım penceresinde yapın; iptal edilmiş sorgular otomatik devam etmez.