dataiotech Labs
dbaguidedbaguideDBAdataxtoolsdataopsphere
Scripts Library/mysql/#32
Script #32
mysql
Performanceread-onlyMin Version: 5.7

MySQL Queries Creating On-Disk Temporary Tables

Shows the on-disk temp table ratio and the queries causing it. Gives hints for tmp_table_size and query optimization.

#tmp-table#disk-temp#memory
mysql · sql
SELECT variable_name, variable_value
FROM performance_schema.global_status
WHERE variable_name IN ('Created_tmp_tables','Created_tmp_disk_tables','Created_tmp_files');

SELECT db, LEFT(query, 150) AS query, exec_count, tmp_tables, disk_tmp_tables
FROM sys.statements_with_temp_tables
WHERE disk_tmp_tables > 0
ORDER BY disk_tmp_tables DESC
LIMIT 20;
Operational Notes & Remediation Guidance

Verify in a staging environment prior to running in production. This is a read-only diagnostic query; it does not acquire exclusive locks.

Production Safety & Execution Standards
  • This script is designed for read-only diagnostics; it does not alter schema or modify data directly.
  • Prior to executing on production systems under high load, verify the target database version (Min. Version: 5.7).
  • Exercise caution with mutating actions (e.g., terminating sessions or dropping indexes) referenced in the notes section.