關於對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
- 關於position的一些理解
- 關於對Host的理解
- 關於position定位的一些理解
- 對於Redux原始碼的一些理解Redux原始碼
- 關於 groutine 喚醒中 skipframes 引數不理解
- 關於Base64的一些理解
- 關於Dart中Future的一些理解Dart
- 關於Swift中Properties的一些理解Swift
- MySQL:Innodb:innodb_flush_log_at_trx_commit引數影響的位置MySqlMIT
- 關於我對可迭代物件,迭代器,生成器的一些理解物件
- 關於虛擬函式的一些理解函式
- 關於 Python 裝飾器的一些理解Python
- 關於服務高可用的一些理解
- 關於跨域和JSONP的一些理解跨域JSON
- 關於OPcache對Swoole影響的理解opcache
- 關於01揹包個人的一些理解
- 關於 Node.js scoped module 的一些理解Node.js
- 關於排列熵的一些理解與解釋熵
- 關於spring事務原始碼的一些小理解Spring原始碼
- 淺談對python pandas中 inplace 引數的理解Python
- 對於隨機數的一些分析隨機
- mysql插入慢之所innodb_flush_log_at_trx_commit引數的意義MySqlMIT
- Rman關於filesperset引數的介紹
- 對Transformer的一些理解ORM
- 對ThreadLocal的一些理解thread
- 關於對健壯性程式碼的理解
- 關於西門子間接定址的一些理解
- 關於 Python 裝飾器的一些個人理解Python
- 初學 PHP 對於回撥函式的一些理解PHP函式
- 對React一些原理的理解React
- 關於Flutter空安全的一些使用經驗和理解Flutter
- linux,mtime引數的理解Linux
- jmeter 引數理解JMeter
- 對於BFC的理解
- 對於MVVM的理解MVVM
- 關於xtrabackup --slave-info引數的說明
- 關於Jmeter引數化的編碼問題JMeter
- [spring][讀書筆記]一些關於依賴注入的理解。Spring筆記依賴注入