關於對innodb_flush_log_at_trx_commit引數的一些理解
當這個引數被設定為0,日誌緩衝每秒一次地被寫到日誌檔案,並且對日誌檔案做到磁碟操作的重新整理,但是在一個事務提交不做任何操作。當這個值為1(預設值)之時,在每個事務提交時,日誌緩衝被寫到日誌檔案,對日誌檔案做到磁碟操作的 重新整理。
當設定為2之時,在每個提交,日誌緩衝被寫到檔案,但不對日誌檔案做到磁碟操作的重新整理。MySQL在對日誌檔案的重新整理每秒發生一次。我們必須注意到,因為程式安排問題,每秒一次的重新整理不是100%保證每秒都發生。你可以透過設定這個值不為1來獲得較好的效能,
但隨之你會在一次崩潰中損失二分之一價值的事務。如果你設定這個值為0,那麼任何mysqld程式的崩潰會刪除崩潰前最後一秒的事務,如果我們設定這個值為2,那麼只有作業系統崩潰或掉電才會刪除最後一秒的事務。
儘管如此,InnoDB的崩潰恢復不受影響,而且因為這樣崩潰恢復開始作用而不考慮這個值。注意,許多作業系統和一些磁碟硬體會欺騙重新整理到磁碟操作。儘管重新整理沒有進行,你可以告訴mysqld重新整理已經進行。
即使設定這個值為1,事務的持久程度不被保證,且在最壞情況下掉電甚至會破壞InnoDB資料庫。在SCSI磁碟控制器中,或在磁碟自身中,使用有後備電池的磁碟快取會加速檔案 重新整理並且使得操作更安全。你也可以試著使用Unix命令hdparm來在硬體快取中禁止磁碟寫快取,
或使用其它一些對硬體提供商專用的命令。這個選項的 預設值是1。
該引數簡單歸納如下:
引數innodb_flush_log_at_trx_commit:
=0 :每秒 write os cache & flush disk
=1 :每次commit都 write os cache & flush disk
=2 :每次commit都 write os cache,然後根據innodb_flush_log_at_timeout引數(預設為1s) flush disk
當設定為2之時,在每個提交,日誌緩衝被寫到檔案,但不對日誌檔案做到磁碟操作的重新整理。MySQL在對日誌檔案的重新整理每秒發生一次。我們必須注意到,因為程式安排問題,每秒一次的重新整理不是100%保證每秒都發生。你可以透過設定這個值不為1來獲得較好的效能,
但隨之你會在一次崩潰中損失二分之一價值的事務。如果你設定這個值為0,那麼任何mysqld程式的崩潰會刪除崩潰前最後一秒的事務,如果我們設定這個值為2,那麼只有作業系統崩潰或掉電才會刪除最後一秒的事務。
儘管如此,InnoDB的崩潰恢復不受影響,而且因為這樣崩潰恢復開始作用而不考慮這個值。注意,許多作業系統和一些磁碟硬體會欺騙重新整理到磁碟操作。儘管重新整理沒有進行,你可以告訴mysqld重新整理已經進行。
即使設定這個值為1,事務的持久程度不被保證,且在最壞情況下掉電甚至會破壞InnoDB資料庫。在SCSI磁碟控制器中,或在磁碟自身中,使用有後備電池的磁碟快取會加速檔案 重新整理並且使得操作更安全。你也可以試著使用Unix命令hdparm來在硬體快取中禁止磁碟寫快取,
或使用其它一些對硬體提供商專用的命令。這個選項的 預設值是1。
該引數簡單歸納如下:
引數innodb_flush_log_at_trx_commit:
=0 :每秒 write os cache & flush disk
=1 :每次commit都 write os cache & flush disk
=2 :每次commit都 write os cache,然後根據innodb_flush_log_at_timeout引數(預設為1s) flush disk
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2135988/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- innodb_flush_log_at_trx_commit引數的直白理解MIT
- 對於Fragment的一些理解Fragment
- 關於position的一些理解
- 關於對Host的理解
- 關於position定位的一些理解
- 關於 groutine 喚醒中 skipframes 引數不理解
- 對於Redux原始碼的一些理解Redux原始碼
- 對於最近的一些理解和思考
- 關於遊標的一些理解
- 關於argument變數的理解變數
- mysql效能引數innodb_flush_log_at_trx_commitMySqlMIT
- 關於Dart中Future的一些理解Dart
- 關於Swift中Properties的一些理解Swift
- 關於Base64的一些理解
- mysql的innodb_flush_log_at_trx_commit引數實驗MySqlMIT
- Oracle一些引數的理解 cursor_sharingOracle
- 關於我對可迭代物件,迭代器,生成器的一些理解物件
- 【引數】Innodb_io_capacity 對於IO穩定性的一些研究
- Oracle優化相關的一些引數Oracle優化
- 關於服務高可用的一些理解
- 關於01揹包個人的一些理解
- 關於一些變數的使用變數
- 關於靜態引數和動態引數
- 關於OPcache對Swoole影響的理解opcache
- 對於隨機數的一些分析隨機
- MySQL:Innodb:innodb_flush_log_at_trx_commit引數影響的位置MySqlMIT
- 關於跨域和JSONP的一些理解跨域JSON
- 關於 Python 裝飾器的一些理解Python
- 關於排列熵的一些理解與解釋熵
- 關於 Node.js scoped module 的一些理解Node.js
- oracle 關於--引數檔案Oracle
- 關於我對於寫部落格寫文章的理解
- 關於RAC每個節點更改對應的記憶體引數記憶體
- 關於我對c#的一些看法C#
- 淺談對python pandas中 inplace 引數的理解Python
- RAC中對DB引數檔案的簡單理解
- 關於對健壯性程式碼的理解
- 關於 Python 裝飾器的一些個人理解Python