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

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

編輯:MySQL綜合教程

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
此方法最大的缺點,是一旦mysql重啟,一切恢復默認值

方法二,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

修改好後如何查看:
查看服務器配置信息
SHOW VARIABLES WHERE Variable_name LIKE %tmp_table_size%

查看服務器運行信息
SHOW STATUS

如何使用JDBC獲得他們的值:
SELECT @@tmp_table_size
SELECT @@max_heap_table_size

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