我正在努力提高我们的主MySQL服务器的性能。 这是一个双核心英特尔X5450,具有8GB的RAM。 这是一个专用的MySQL框。 我只是在开始configuration它,所以我开始比较新鲜。
我注意到Created_tmp_disk_tables非常高,达到了330k。 Created_tmp_tables只有380k。 这可能不会太糟,除了MySQL在4小时前重启。
我已经设置了以下内容:
15:31:15 (9) > show global variables like '%table_size%'; +---------------------+------------+ | Variable_name | Value | +---------------------+------------+ | max_heap_table_size | 1073741824 | | tmp_table_size | 1073741824 | +---------------------+------------+
此页面build议两个值中较小的一个决定临时表何时成为基于磁盘的表。 我个人认为,1GB的容量足够大,足以处理我们要创build的任何大小的临时表,但显然,我是不正确的。
任何人都可以build议其他方法来保持基于磁盘的临时表的数量?
如果临时表过度使用,我首先想到的是使用数据库的应用程序需要查询优化。