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

MySQL 系統參數調優實戰:9 大核心參數解析與生產配置範本

     編輯:MySQL 資料庫相關知識

針對 2GB 記憶體伺服器的實測調優記錄,9 大核心參數含預設值、調整值、調整依據與監控指標。

參數預設值調整值作用與調整依據監控指標
back_log50500TCP 監聽隊列長度。SHOW PROCESSLIST 出現大量 unauthenticated user 待連進程時調大。Threads_connected, Aborted_connects
interactive_timeout288007200互動式連線空閒斷開秒數。降低釋放殭屍連線。Threads_connected, Sleep 狀態數
key_buffer_size8MB400MBMyISAM 索引塊緩衝。設為物理記憶體 20~25%,過大導致 Swap。Key_read_requests, Key_reads
max_connections1001024最大並發連線。避免 Too many connections,需配合檔案描述符 ulimit -n。Max_used_connections, Threads_connected
record_buffer (read_buffer_size)128KB16MB順序掃描緩衝。大量全表掃描查詢時調大。Select_scan, Handler_read_rnd_next
sort_buffer_size2MB16MB排序緩衝。加速 ORDER BY/GROUP BY,每連線獨佔,慎防 OOM。Sort_merge_passes, Sort_rows
table_cache (table_open_cache)64512表快取數。每表佔 2 檔案描述符,配合 open_files_limit。Open_tables, Opened_tables
thread_cache_size080執行緒快取。對比 Connections vs Threads_created,降低建立執行緒開銷。Threads_created, Connections
wait_timeout288007200非互動連線空閒斷開秒數。同 interactive_timeout 通常設同值。Threads_connected, Aborted_clients

配置生效方式

# 編輯 /etc/my.cnf (或 /etc/mysql/my.cnf)
[mysqld]
back_log = 500
interactive_timeout = 7200
key_buffer_size = 400M
max_connections = 1024
read_buffer_size = 16M
sort_buffer_size = 16M
table_open_cache = 512
thread_cache_size = 80
wait_timeout = 7200

# 重啟生效
systemctl restart mysqld  # 或 service mysql restart

調優鐵律

  1. 一次只改一個參數,觀察效果。
  2. 以監控數據為依據,而非經驗拍腦門。
  3. 記憶體相關參數總和 < 70% 物理記憶體,留給 OS、FS Cache、其他進程。
  4. 調整後必須壓測驗證 (sysbench、tpcc-mysql)。
  5. 保留調整前配置備份,便於回滾。

參數調優是持續迭代過程,而非一次性銀彈。

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