| 參數 | 預設 | 建議值 | 說明 |
| innodb_flush_method | NULL | O_DIRECT | 避免雙重緩存 (OS + InnoDB) |
| innodb_max_dirty_pages_pct | 90 | 75~90 | 髒頁比例觸發刷盤 |
| innodb_io_capacity | 200 | SSD 2000+, HDD 200 | 後台刷盤 IOPS 能力 |
| innodb_purge_threads | 1 | 4 | Undo 清理執行緒 |
| innodb_status_file | OFF | ON | 定期輸出 SHOW ENGINE INNODB STATUS 到檔案 |
動態調整驗證
-- 線上修改範例
SET GLOBAL innodb_buffer_pool_size = 17179869184; -- 16G (5.7+ 支援)
SET GLOBAL innodb_max_dirty_pages_pct = 75;
SET GLOBAL innodb_io_capacity = 5000;
-- 驗證
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
SHOW ENGINE INNODB STATUS\G -- 觀察 Buffer Pool 狀態
Windows 預設值參考 (舊版)
innodb_buffer_pool_size = 8M
innodb_log_file_size = 10M
innodb_log_buffer_size = 1M
innodb_file_per_table = OFF
innodb_thread_concurrency = 8
生產環境必須根據硬體重新規劃,不可使用預設值。
- 上一篇文章: InnoDB 事務隔離級別深度解析:REPEATABLE READ 無幻讀實測與 MVCC 實現原理
- 下一篇文章: MySQL 分表架構下的跨節點批量查詢設計模式(Java 實現)
Copyright ©
程式碼之家 All Rights Reserved