我在 PHPMyAdmin 状态屏幕中看到Created_tmp_disk_tables 10 k
它显示为红色。10k 是一个可怕的数字。是我的查询还是服务器设置导致临时表达到这么高的值?有没有办法记录创建临时表的查询(请回答是)?
答案1
这是您需要知道的。
如果内部临时表最初是作为内存表创建的但变得太大..
MySQL 会自动将其转换为磁盘表。内存临时表的最大大小是临时表大小和最大堆表大小值。
http://dev.mysql.com/doc/refman/5.1/en/internal-temporary-tables.html
顺便说一句...当服务器创建内部临时表(在内存中或磁盘上)时,它会递增 Created_tmp_tables 状态变量。如果服务器在磁盘上创建表(无论是最初创建还是通过转换内存表创建),它都会递增 Created_tmp_disk_tables 状态变量。
您看到的是一个增量..那么您上次重新启动 mysql 是什么时候?:D