tmp_table_size 如果內存內的臨時表超過該值,MySQL自動將它轉換為硬盤上的MyISAM表。如果你執行許多高級GROUP BY查詢並且有大量內存,則可以增加tmp_table_size的值。 max_heap_table_size 該變量設置MEMORY (HEAP)表可以增長到的最大空間大小
tmp_table_size
如果內存內的臨時表超過該值,MySQL自動將它轉換為硬盤上的MyISAM表。如果你執行許多高級GROUP BY查詢並且有大量內存,則可以增加tmp_table_size的值。
max_heap_table_size
該變量設置MEMORY (HEAP)表可以增長到的最大空間大小。該變量用來計算MEMORY表的MAX_ROWS值。在已有的MEMORY表上設置該變量沒有效果,除非用CREATE TABLE或TRUNCATE TABLE等語句重新創建表。
方法一,修改my.ini或my.cnf
tmp_table_size=64M
max_heap_table_size=32M
此方法最大的缺點,是一旦重啟,一切恢復默認值
方法二,mysqld命令行
代碼如下 復制代碼 mysqld_safe –key_buffer_size=512K –sort_buffer_size=16K方法三,動態修改
因為tmp_table_size和max_heap_table_size,都有session作用域,所以,一般情況下,盡量這樣做吧
代碼如下 復制代碼SET SESSION tmp_table_size=64*1024*1024
SET SESSION max_heap_table_size=32*1024*1024
個人建義,如果你有服務器的管理權限推薦使用第一種方法,後兩種方法只要重啟mysql服務器一切還原到以前的配置,所以只有修改my.ini最好了。