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

影響 MySQL 效能的五大關鍵配置參數類別:連線、查詢快取、臨時表、會話記憶體、慢查詢日誌

     編輯:MySQL 資料庫相關知識

一、連線相關

參數建議
max_connections依應用峰值連線數設定,預設 151 過小
max_allowed_packet大於最大單行資料,含 BLOB/TEXT 時調大(如 64M)
thread_cache_size觀察 Threads_created 增長,設 50-200 減少執行緒建立開銷
aborted_connects狀態值,持續增長表示連線錯誤需排查

二、查詢快取(MySQL 5.7 廢除,8.0 移除)

參數說明
query_cache_size總快取大小,0 關閉
query_cache_limit單查詢結果上限,預設 1M
query_cache_min_res_unit分配最小單位,預設 4K,碎片高時調小
query_cache_type0=關閉, 1=開啟, 2=DEMAND 模式

命中率公式:Qcache_hits / (Qcache_hits + Com_select)

平均快取大小:(query_cache_size - Qcache_free_memory) / Qcache_queries_in_cache

三、臨時表

參數說明
tmp_table_size記憶體臨時表上限,超過轉磁碟 MyISAM
max_heap_table_sizeMEMORY 表上限,實際臨時表上限取兩者較小值
  • 含 BLOB/TEXT 欄位直接建磁碟臨時表,無法調整。
  • 優先優化 SQL(減少排序、分組、關聯),而非單純調大參數。

四、會話記憶體(每連線獨佔)

參數用途建議基礎值
read_buffer_size循序掃描快取128K-256K
sort_buffer_size排序快取1M-2M,會話層視查詢調大
join_buffer_size關聯查詢快取(無索引時)1M-2M,會話層視查詢調大
read_rnd_buffer_size隨機讀取/排序快取1M,會話層調大

估算總記憶體:Global buffers + (Per-thread buffers × max_connections)。實測 top -p mysqld_pid 觀察 VIRT/RES。

五、慢查詢日誌

參數建議
slow_query_logON
slow_query_log_file/var/log/mysql/slow.log
long_query_time1(秒),5.7+ 支援毫秒/微秒
log_queries_not_using_indexesON(記錄全表掃描)

分析工具:mysqldumpslow、pt-query-digest。

總結

五大類參數平時少動,效能調優、故障診斷時關鍵。建議建立基線配置,變更單一參數觀察效果,避免同時多參數調整導致難以定位。

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