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

MySQL 核心性能參數速查表:內存與線程相關變量全解析

     編輯:MySQL 資料庫相關知識

內存相關變量(按作用域分類)

全局級:啟動分配、全實例共享

參數適用引擎用途調優建議
key_buffer_sizeMyISAM索引鍵緩存專用 MyISAM 實例可設物理內存 25%-50%
innodb_buffer_pool_sizeInnoDB數據+索引+自適應哈希+鎖信息+插入緩衝核心參數,專用實例建議 60%-80% 物理內存
innodb_additional_mem_pool_sizeInnoDB內部數據字典/控制結構(5.6.3+ 已廢棄,併入 buffer pool)歷史版本設 8-20MB 即可
innodb_log_buffer_sizeInnoDB重做日志緩衝,大事務需調大8-64MB,避免頻繁刷盤
query_cache_sizeAll查詢結果緩存(MySQL 8.0 移除)高併發寫入場景建議關閉(0),讀多寫少可開 64-256MB
tmp_table_sizeAll內存臨時表上限,超限轉 MyISAM 磁盤表配合 max_heap_table_size 設 64-256MB,避免磁盤臨時表

會話級:每連接獨立分配,併發乘數效應大

參數用途默認值調優建議
join_buffer_size無索引連接的全表掃描緩衝(每張表分配一次)256KB慎調大,優先加索引;必要時會話級動態調大
read_buffer_size全表掃描順序讀取緩衝128KB大批量掃描可適當調大(如 2-4MB)
read_rnd_buffer_size排序後隨機讀取緩衡(如 ORDER BY 走索引)256KB大排序場景可調大
sort_buffer_size結果集排序緩衝(ORDER BY/GROUP BY/DISTINCT)256KB默認通常足夠,盲目調大反增 CPU/內存開銷;大排序會話級調大
thread_stack線程棧空間192KB/256KB存儲過程/複雜視圖深度調用時需調大(如 512KB-1MB)

線程管理變量

參數作用域用途建議值
thread_cache_sizeGLOBAL緩存空閒線程對象,減少創建/銷毀開銷100-500(視併發峰值),監控 Threads_created 微增為宜
max_connectionsGLOBAL最大併發連接數業務峰值 + 余量,防連接風暴;配合連接池使用

內存佔用估算公式(理論上限)

總內存 ≈ 全局緩衝之和
        + (read_buffer_size + read_rnd_buffer_size + sort_buffer_size + join_buffer_size + thread_stack) * max_connections
        + 額外開銷(解析器、存儲引擎私有結構等)

警示:會話級參數乘以 max_connections 為理論峰值,實際佔用通常僅 10%-30%。請監控 PS aux VSZ 實際走勢而非死記公式。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved