mysql创建临时表非常慢

时间:2018-06-18 09:49:42

标签: mysql

我在2个不同的系统中使用mysql。我有一个使用ubuntu的系统和另一个使用debian的系统。

我必须在某个时刻创建临时表以呈现数据,真正奇怪的是在ubuntu系统上,它需要400毫秒(来自浏览器的响应)而在debian上需要10秒以上!!!

我在mysql配置中检查了2个值,我有: 显示全局变量,如'tmp_table_size';在两台服务器上都是相同的:16777216

但区别在于: 显示全局状态,如'created_tmp_disk_tables';它在快速服务器上提供11,在慢速服务器上提供102.

我真的不知道在哪里看以及如何优化它以便我在两台服务器上都有相同的功能。

当然我的生产服务器在debian上。

快速服务器正在运行:mysql版本5.7.18-0ubuntu0.16.04.1 慢速服务器正在运行:mysql版本5.5.55-0 + deb8u1

在快速服务器上,我有:

show global variables like 'default_tmp_storage_engine';
+----------------------------+--------+
| Variable_name              | Value  |
+----------------------------+--------+
| default_tmp_storage_engine | InnoDB |
+----------------------------+--------+
1 row in set (0.00 sec)

在慢速服务器上,我有:

show global variables like 'default_tmp_storage_engine';
Empty set (0.00 sec)

1 个答案:

答案 0 :(得分:1)

建议考虑使用my.cnf-ini

max_heap_table_size=16M  # and should always be same as tmp_table_size

显示全局变量类似'%tmp_table_size'可以在每个版本上使用,以查看您目前拥有的内容。

全局变量default_tmp_storage_engine在5.5和5.7之间添加。

如需其他帮助,请在我的个人资料中查找联系信息。