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

MySQL my.ini 效能調優範本:關鍵參數詳解與生產環境建議值

     編輯:MySQL 資料庫相關知識

配置檔範例 (Windows 路徑)

[mysqld]
basedir=D:/MySQL
datadir=D:/MySQL/data
# bind-address=IP
# port=3306

# 連線與快取
max_connections=1500
skip-locking
# skip-networking

# 緩衝區與快取 (視記憶體調整)
key_buffer=384M
max_allowed_packet=1M
table_cache=512
sort_buffer=2M
record_buffer=2M
thread_cache=8
thread_concurrency=8  # 建議 CPU 核心數 * 2
myisam_sort_buffer_size=64M

# 複寫識別
server-id=1

[isamchk]
key_buffer=128M
sort_buffer=128M
read_buffer=2M
write_buffer=2M

[myisamchk]
key_buffer=128M
sort_buffer=128M
read_buffer=2M
write_buffer=2M

[WinMySQLadmin]
Server=D:/mysql/bin/mysqld-nt.exe

核心參數解析與調優建議

參數說明調優建議
key_bufferMyISAM 索引塊快取實體記憶體 25-30%(僅跑 MyISAM 時),InnoDB 環境改調 innodb_buffer_pool_size
max_connections最大同時連線數依應用峰值設定,過大耗盡記憶體
table_cache開啟表快取數觀察 Opened_tables 狀態變數調整
sort_buffer / record_buffer每連線排序/讀取緩衝預設 2MB 足夠,大查詢可適度增大
thread_cache執行緒快取減少頻繁建立/銷毀執行緒開銷
thread_concurrency並行執行緒提示Linux/Unix 建議 CPU核心*2,Windows 通常忽略
myisam_sort_buffer_sizeMyISAM 建索引排序緩衝大量載入/建索引時可增至 128M+
skip-locking關閉外部鎖定單機多實例或 NFS 共享才需開啟

InnoDB 專用參數(補充)

innodb_buffer_pool_size=1G      # 實體記憶體 60-70%
innodb_log_file_size=256M
innodb_log_buffer_size=8M
innodb_flush_log_at_trx_commit=2  # 1 最安全,2 效能最佳
innodb_file_per_table=1

驗證與監控

  • 修改後 重啟 MySQL 生效
  • 觀察 SHOW GLOBAL STATUS:Key_reads/Key_read_requests(命中率)、Threads_created(執行緒快取效果)
  • 使用 mysqltuner.pl、MySQLTuner 自動分析建議

注意事項

  • Windows 路徑使用正斜線 / 或雙反斜線 \\
  • 參數名新版多採用底線格式(sort_buffer_size),舊版 set-variable = sort_buffer 仍相容
  • 生產環境務必先在測試機壓測驗證
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved