MySQL Diskte Geçici Tablo Oranı Yükseldi: Sorgu ve Bellek İncelemesi
Diske taşan geçici tabloları üreten sorguları saptar, bellek sınırı ile sorgu planını ayrıştırır ve sürüm farklarını gözeterek müdahale eder.
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
- M21 yükselir, disk I/O ve sorgu gecikmesi artar. Oran küçük toplam örneklemde yanıltıcı olabilir; **mutlak disk temp tablo hızı** da izlenmelidir.
2. Etki / Impact
Sıralama/gruplama disk alanı ve I/O tüketir; temp dizini dolarsa sorgular başarısız olabilir. Tüm disk temp tabloları hata değildir, çalışma yükü ve veri tipine bakın.
3. Teşhis / Diagnosis
SHOW GLOBAL STATUS WHERE Variable_name IN
('Created_tmp_tables','Created_tmp_disk_tables','Created_tmp_files');
SHOW GLOBAL VARIABLES WHERE Variable_name IN
('tmp_table_size','max_heap_table_size','internal_tmp_mem_storage_engine','temptable_max_ram');5.7 MEMORY tabanlı iç tabloda `tmp_table_size` ve `max_heap_table_size` birlikte önemlidir; 8.0 TempTable motorunda davranış ve bellek sınırları sürüme göre değişir. Olmayan değişken satırı gelmemesi normaldir.
SELECT db, LEFT(query,160) AS query_pattern, exec_count,
tmp_tables, disk_tmp_tables
FROM sys.statements_with_temp_tables
ORDER BY disk_tmp_tables DESC LIMIT 20;4. Müdahale / Response
5. Doğrulama / Verification
- 5 dakikalık delta üzerinden M21 ve disk temp tablo hızı düşer, p95 gecikmesi iyileşir.
- OS available RAM, temp mount boş alanı ve replica gecikmesi sağlıklıdır.
6. Geri Alma / Rollback
- Dinamik değişkenler değiştiyse önceki değerleri yeniden uygulayın ve kalıcı yapılandırmayı düzeltin.
- Sorgu dağıtımı regresyon üretirse önceki sürüme dönün; DDL değişikliğini ayrı planla geri alın.