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

InnoDB 核心參數深度解析(二):innodb_log_file_size、Redo Log 循環寫入與 innodb_flush_log_at_trx_commit 三模式權衡

     編輯:MySQL 綜合教學

Redo Log 核心價值:隨機 I/O → 順序 I/O

事務修改分散在表空間隨機位置,直接刷盤極慢。Redo Log 循序記錄修改,**日誌安全 = 事務持久**,崩潰後通過日誌恢復。

innodb_log_file_size 設定

  • 預設:2 個 5MB 檔案(總 10MB),高併發嚴重不足
  • 建議:總大小 = innodb_buffer_pool_size 的 25%-100%
  • 修改步驟:停服務 → 刪除舊 ib_logfile* → 改配置 → 啟動(自動建立新檔案)

Log Buffer 與 innodb_flush_log_at_trx_commit 三模式

後台刷盤執行緒

將 Log File 記錄合併寫入資料檔案(表空間),同樣將隨機 I/O 轉順序 I/O。

下篇預告

InnoDB 如何將 Log Buffer 刷新到 Log File 的具體機制(group commit、log block、checkpoint 等)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
值行為效能資料安全適用場景
0提交不刷,後台每秒刷 Log Buffer → Log File → 磁碟最高崩潰丟失 1 秒事務非核心日誌、可容忍丟失
1每提交:Log Buffer → Log File → fsync 磁碟最低完全 ACID核心業務、金融、訂單(預設)
2每提交:Log Buffer → Log File(OS 快取),每秒 fsync 磁碟中等OS 崩潰不丟失,僅 MySQL 崩潰丟 1 秒高併發、可接受極小風險