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

MySQL 性能優化:my.ini / my.cnf 關鍵參數調優指南

     編輯:MySQL 資料庫相關知識

my.ini (Windows) 或 my.cnf (Linux) 是 MySQL 核心配置文件,位於安裝目錄或 /etc。本文匯總生產環境常用優化參數,按通用、MyISAM、InnoDB 三類整理,附帶預設值、建議值與說明。

一、通用核心參數

參數預設值建議值說明
max_connections1001024最大同時連接數,視業務併發調整
query_cache_size016M~256M查詢緩存大小,按需倍增,對讀多寫少場景關鍵
sort_buffer_size512K2M~16M每線程排序緩存,ORDER BY/GROUP BY 生效,慎設過大
read_buffer_size / record_buffer128K2M~16M全表掃描時每線程緩存
table_cache / table_open_cache64512~2048所有線程打開表數量,影響文件描述符需求

二、MyISAM 專用參數

參數預設值建議值說明
key_buffer_size8M128M~256M (≤ 物理記憶體 30%)索引塊緩存,MyISAM 效能核心參數
read_buffer_size128K16M全表掃描讀緩存
myisam_sort_buffer_size16M128M建立/修復索引時緩存,勿設過大

三、InnoDB 核心參數(重中之重)

參數預設值建議值說明
innodb_buffer_pool_size32M物理記憶體 50%~70% (上限 2G~4G)索引+數據緩存池,最關鍵參數,越大磁碟 I/O 越少
innodb_additional_mem_pool_size2M20M~200M元數據緩存,大內存機器建議調大
innodb_flush_log_at_trx_commit10/2 (高併發) / 1 (數據安全)0: 秒級刷盤;1: 每次提交刷盤(最安全);2: 提交寫文件、秒級刷盤(折中)
innodb_log_file_size8M256M~1G (buffer_pool 25%~50%)Redo Log 文件大小,避免頻繁 checkpoint 刷髒頁
innodb_log_buffer_size128K1M~8MLog 緩存,大事務建議調大

調優原則

  1. 先測量,再調整:基於 SHOW GLOBAL STATUS、SHOW ENGINE INNODB STATUS、慢查詢日誌分析瓶頸。
  2. 單參數變更:每次調整一個參數,觀察效果,避免相互干擾。
  3. 記憶體總量守恆:所有緩存總和不可超過物理記憶體 80%,預留系統與連接開銷。
  4. InnoDB 為主流:現代應用以 InnoDB 為主,優先調優 innodb_buffer_pool_size、innodb_flush_log_at_trx_commit、Redo Log 容量。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved