MySQL 效能調優的核心在於「依硬體資源分配記憶體、依負載特徵調整並發」。本文精選 9 個最高影響力參數,解析運作原理、預設值、調整依據與實測配置值,附上可直接套用的 my.cnf 範本。
| 參數 | 預設值 | 建議值 (8GB RAM 範例) | 核心作用 | 調整判斷依據 |
|---|---|---|---|---|
back_log | 50 | 500 | TCP 連接請求隊列長度 | SHOW PROCESSLIST 出現大量 unauthenticated user / Connect 狀態 |
interactive_timeout | 28800 (8h) | 7200 (2h) | 互動式連線閒置斷開秒數 | 應用使用連線池時縮短,釋放殭屍連線 |
key_buffer_size | 8MB | 512M-1G | MyISAM 索引塊緩衝區(全域共享) | Key_reads/Key_read_requests > 0.01 需調大;純 InnoDB 可設極小 |
max_connections | 151 | 1000-2000 | 最大並發連線數 | 出現 Too many connections;配合 open_files_limit |
read_buffer_size | 128KB | 2-4MB | 全表掃描時每線程順序讀取緩衝 | 大量全表掃描查詢;read_buffer_size * max_connections 不超總記憶體 10% |
sort_buffer_size | 2MB | 4-8MB | 每線程排序緩衝 | Sort_merge_passes 偏大;避免設過大(每連線獨佔) |
table_open_cache | 4000 | 2048-4096 | 表緩存數量(含 .frm/.MYD/.MYI) | Opened_tables / Uptime > 2 需調大;受 open_files_limit 限制 |
thread_cache_size | 0-100 | 100-200 | 線程緩存池大小 | Threads_created / Connections > 0.1 需調大 |
wait_timeout | 28800 (8h) | 7200 (2h) | 非互動連線閒置斷開秒數 | 應用連線池配合縮短,防連線洩漏佔用槽位 |
[mysqld]
innodb_buffer_pool_size = 6G # 專用機 60-70% 物理記憶體
innodb_log_file_size = 512M # 大寫入負載調大,減少 checkpoint 壓力
innodb_log_buffer_size = 32M # 大事務調大
innodb_flush_log_at_trx_commit = 2 # 1 最安全,2 效能最佳(秒級丟失風險)
innodb_file_per_table = 1 # 獨立表空間,利於回收空間
innodb_read_io_threads = 8
innodb_write_io_threads = 8
innodb_io_capacity = 2000 # SSD 可設 5000-10000
innodb_max_dirty_pages_pct = 75
/etc/my.cnf(或 /etc/mysql/my.cnf)systemctl restart mysqld 重啟生效(動態參數可 SET GLOBAL 即時生效)SHOW VARIABLES LIKE 'param_name';SET GLOBAL 即時生效(如 max_connections、sort_buffer_size)innodb_buffer_pool_size、innodb_log_file_size、table_open_cache)SHOW VARIABLES WHERE Variable_name IN ('param1','param2');Threads_connected、Connection_errors_max_connections、Aborted_connectsKey_read_requests/Key_reads、Innodb_buffer_pool_read_requests/Innodb_buffer_pool_readsCreated_tmp_disk_tables、Sort_merge_passesTable_locks_waited、Innodb_row_lock_waits、Innodb_lock_wait_timeout參數調優無銀彈,基準測試 + 持續觀測 + 微調迭代 才是正道。建議將上述參數納入基礎設施即代碼,搭配 pt-variable-advisor(Percona Toolkit)自動巡檢,實現配置漂移檢測與合規管理。