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

MySQL my.ini 配置文件深度解析:4GB 內存 InnoDB 專用模板逐項註釋

     編輯:MySQL 資料庫相關知識

針對 4GB 內存、純 InnoDB、高併發隊列、少量連接場景的 my.ini/my.cnf 完整註釋版,每項含作用、建議值、調優方向。

文件結構


[client]          # 客戶端默認參數
[mysqld]          # 服務端核心參數(最長)
[mysqldump]       # 導出工具參數
[mysql]           # 交互式客戶端參數
[isamchk]         # MyISAM 檢查工具
[myisamchk]       # MyISAM 維護工具
[mysqlhotcopy]    # 熱備工具
[mysqld_safe]     # 啟動腳本參數

[mysqld] 核心參數精選(按功能分組)

連接與線程

參數默認建議(4GB)說明
max_connections151500-1000配合 thread_cache_size
thread_cache_size050-100減少線程創建開銷
back_log80200監聽隊列長度
max_connect_errors10010000防誤封,配合 FLUSH HOSTS

內存與緩衝

參數默認建議(4GB)說明
innodb_buffer_pool_size128M2-3G (70% 物理內存)核心!數據+索引熱點
innodb_log_buffer_size8M16-64M大事務減少刷盤
innodb_log_file_size48M256M-1G總大小≈buffer_pool 25%
innodb_log_files_in_group23循環寫入
sort_buffer_size256K2-8M每線程,排序/GROUP BY
join_buffer_size256K2-8M每線程,全表掃描 JOIN
read_rnd_buffer_size256K4-16M每線程,排序後隨機讀
tmp_table_size16M64-256M內存臨時表上限
max_heap_table_size16M64-256M用戶創建 MEMORY 表上限

InnoDB 專屬

參數建議關鍵點
innodb_flush_log_at_trx_commit21=最安全,2=高性能(丟 1s),0=最高性能(丟事務)
innodb_file_per_tableON獨立 .ibd,便於回收空間、遷移
innodb_thread_concurrency0 (自動)高併發可設 2×CPU 核心
innodb_lock_wait_timeout50死鎖等待秒數
innodb_max_dirty_pages_pct90髒頁刷盤閾值

查詢緩存(高寫入建議關閉)


query_cache_type = OFF
query_cache_size = 0

日誌與複製


log-bin = mysql-bin          # 主庫必開
server-id = 1                # 唯一
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 1          # 秒,建議 0.5-1
log_queries_not_using_indexes = 1

修改 innodb_log_file_size 避坑

  1. systemctl stop mysqld
  2. rm /var/lib/mysql/ib_logfile*
  3. 修改配置
  4. systemctl start mysqld

驗證配置生效


mysql -uroot -p -e "SHOW VARIABLES LIKE 'innodb_buffer_pool_size';"
mysql -uroot -p -e "SHOW ENGINE INNODB STATUS\G" | head -30
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved