程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql The table‘xxxx’is full 設置臨時表大小

mysql The table‘xxxx’is full 設置臨時表大小

編輯:MySQL綜合教程

在mysql中臨時表就出現xxx is full我們只要對my.ini中tmp_table_size與max_heap_table_size參數進行修改即可。

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=64M –max_heap_table_size=32M &

方法三,動態修改

因為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最好了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved