首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL tmp_table_size 與 max_heap_table_size 參數配置優化指南

     編輯:MySQL 資料庫相關知識

參數說明

tmp_table_size

  • 控制內部內存臨時表的最大值,每個線程獨立分配
  • 實際限制為 MIN(tmp_table_size, max_heap_table_size)
  • 超過限制 → 自動轉為磁盤 MyISAM 表(存放於 tmpdir)
  • 預設 tmpdir:/tmp/

max_heap_table_size

  • 定義用戶可建立的 MEMORY 表大小上限
  • 用於計算內存表最大行數
  • 動態可變:SET @max_heap_table_size = #
  • 對現有表無效,需 ALTER TABLE / TRUNCATE / 重啟生效

16GB 內存推薦配置

tmp_table_size = 64M
max_heap_table_size = 64M

優化判斷指標

SHOW GLOBAL STATUS LIKE 'Created_tmp%';
-- Created_tmp_disk_tables / Created_tmp_tables < 5% 為健康

優化建議

  • 優化查詢避免臨時表(如優化 GROUP BY、ORDER BY)
  • 若無法避免且內存充足,適當增大兩參數
  • 不適用於用戶手動建立的 MEMORY 表
參考文檔: "How MySQL Uses Internal Temporary Tables"、"The MEMORY Storage Engine"
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved