首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 核心參數調優模板:InnoDB 緩衝池、日誌、執行緒、查詢快取、連線與 Binlog 設定

     編輯:MySQL 綜合教學

InnoDB 核心參數

[mysqld]
# 內部記憶體池 (資料字典、鎖資訊)
innodb_additional_mem_pool_size = 16M

# 緩衝池:建議實體記憶體 70-80%
innodb_buffer_pool_size = 12G

# 表空間檔案路徑與大小
innodb_data_file_path = ibdata1:18M;ibdata2:1000M:autoextend

# 檔案 I/O 執行緒
innodb_file_io_threads = 4

# 並發執行緒數 (0=不限制,建議 2x CPU 核心)
innodb_thread_concurrency = 16

# Redo Log 檔案大小
innodb_log_file_size = 256M
innodb_log_files_in_group = 3

# Log Buffer
innodb_log_buffer_size = 8M

# 提交刷盤策略:2=高效能 (僅寫 OS cache,每秒 fsync)
innodb_flush_log_at_trx_commit = 2

# 直接 I/O 繞過 OS cache
innodb_flush_method = O_DIRECT

# 髒頁比例上限
innodb_max_dirty_pages_pct = 90

# 鎖等待超時
innodb_lock_wait_timeout = 120

連線與執行緒快取

# 依實體記憶體:1G=8, 2G=16, 3G=32, >3G=64
thread_cache_size = 64

# 並發數 (建議 2x CPU 核心)
thread_concurrency = 8

查詢快取 (MySQL 5.7 以前)

query_cache_size = 256M
query_cache_limit = 2M

索引與讀取緩衝區

key_buffer_size = 128M
read_buffer_size = 4M
read_rnd_buffer_size = 16M

Binlog 管理

expire_logs_days = 10
binlog_format = MIXED

調優原則

  1. 先調 innodb_buffer_pool_size 最大化命中率。
  2. innodb_flush_log_at_trx_commit=2 搭配 O_DIRECT 兼顧效能與相對安全。
  3. 監控 Key_reads/Key_read_requests < 0.01,調整 key_buffer_size。
  4. 慢查詢配合 long_query_time=1 + EXPLAIN 針對性加索引。
  5. 參數變更後必須重啟或動態生效驗證 (SET GLOBAL 或 SHOW VARIABLES)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved