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

MySQL 效能調優九大參數實戰:back_log、key_buffer、max_connections 等核心配置優化指南

     編輯:MySQL 資料庫相關知識

針對高併發場景的 9 大核心參數調優實戰,含預設值、建議值、調整邏輯、監控指標與配置模板,與文章 48713 互補驗證。

參數預設建議調整邏輯監控
back_log50500TCP 監聽隊列,SHOW PROCESSLIST 見大量 unauthenticated user 時調大Aborted_connects
interactive_timeout288007200互動連線空閒斷開,釋放殭屍連線Threads_connected
key_buffer_size8M400M (2GB RAM)MyISAM 索引緩衝,設物理記憶體 20~25%,過大致 SwapKey_reads/Key_read_requests
max_connections1001024最大並發,配合 open_files_limit、ulimit -nMax_used_connections
read_buffer_size128K16M全表掃描緩衝,大報表查詢受益Select_scan
sort_buffer_size2M16M排序緩衝,每連線獨佔,慎防 OOMSort_merge_passes
table_open_cache64512表快取,每表 2 fd,配合 open_files_limitOpened_tables
thread_cache_size080執行緒快取,Threads_created/Connections 比值降低Threads_created
wait_timeout288007200非互動連線空閒斷開,與 interactive_timeout 同設Aborted_clients

生產 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

# InnoDB 專屬 (補充)
innodb_buffer_pool_size = 1G      # 專用 DB 設 60~70% RAM
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 2
innodb_file_per_table = 1

驗證清單

  1. 修改後 systemctl restart mysqld。
  2. mysqladmin variables | grep -E 'back_log|key_buffer|max_connections|sort_buffer|table_open_cache|thread_cache|wait_timeout' 確認生效。
  3. 壓測:sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=xxx --num-threads=100 --max-time=300 run。
  4. 對比 QPS、TPS、95% latency、錯誤率。

參數調優無銀彈,唯有「監控→假設→調整→壓測→驗證」閉環才能持續收益。

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