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

MySQL 參數調優核心:my.cnf 配置層級、關鍵參數與實戰模板

     編輯:MySQL 資料庫相關知識

配置檔生效範圍與優先順序

檢視當前實例讀取順序:mysqld --help --verbose 2>&1 | head -20

關鍵參數分類速查

連線與線程

[mysqld]
max_connections = 500          # 最大連線數
thread_cache_size = 50         # 線程緩存,減少創建銷毀
back_log = 100                 # 監聽隊列長度
max_connect_errors = 100000    # 防暴力破解封鎖

InnoDB 核心(記憶體佔大頭)

innodb_buffer_pool_size = 12G  # 專用 DB 伺服器建議 70~80% 物理記憶體
innodb_log_file_size = 1G      # 大事務支援,減少 checkpoint 壓力
innodb_log_buffer_size = 64M   # 大交易減少磁盤刷新
innodb_flush_log_at_trx_commit = 1  # 1=最安全,2=高效能折衷
innodb_file_per_table = ON     # 獨立表空間,利於管理
innodb_io_capacity = 2000      # SSD 建議 2000+,HDD 200

查詢快取(MySQL 5.7 已移除,8.0 無)

# 5.6 及之前
query_cache_type = 0           # 關閉,高併發下鎖競爭嚴重
query_cache_size = 0

慢查詢與日志

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
log_output = FILE

依機型選擇預設模板

路徑作用範圍典型場景
/etc/my.cnf全域(所有實例)單實例伺服器、容器化部署
$MYSQL_BASEDIR/my.cnf實例級(data 目錄)多實例共存
~/.my.cnf用戶級(客戶端)開發/測試環境

動態調整驗證

-- 線上修改(部分需重啟)
SET GLOBAL innodb_buffer_pool_size = 13958643712;  -- 5.7+ 支援線上縮放
SET GLOBAL max_connections = 1000;

-- 驗證生效
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
SHOW GLOBAL STATUS LIKE 'Max_used_connections';
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
模板適用記憶體典型負載
my-small.cnf< 256MB嵌入式、開發機
my-medium.cnf256MB~1GB輕量應用、單機多服務
my-large.cnf1GB~4GB中型生產 DB
my-huge.cnf> 4GB大型專用 DB 伺服器