MySQL On-Disk Temporary Tables Spiked: Query and Memory Investigation
Finds queries creating on-disk temporary tables and separates memory limits from query-plan causes while accounting for version differences.
Operational Safety & Risk Notice
This runbook contains operational intervention steps; several are write-impacting (KILL, terminate, DROP, RESIZE). Verify in a staging environment first, and apply sequentially in production with verification.
1. Symptom & Signals
- 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. Business & Technical 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. Diagnosis & Root-Cause Analysis
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. Remediation & Action Plan
5. Verification & Health Checks
- 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. Rollback & Contingency Plan
- 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.