innodb_flush_log_at_trx_commit和sync_binlog innodb_flush_method
innodb_flush_log_at_trx_commit和sync_binlog innodb_flush_method的介紹
[@more@]innodb_flush_log_at_trx_commit:控制了innodb將log buffer中的資料寫入日誌檔案並flush磁碟的時間點
innodb_flush_log_at_trx_commit=0 日誌緩衝區(存放redo log)以每秒一次的頻率flush寫入日誌檔案,並對檔案描述符執行磁碟重新整理操作,但不會在事務執行期間進行任何處理
innodb_flush_log_at_trx_commit=1 在每次執行事務時都將redo log buffer寫入日誌檔案,並對檔案描述符執行磁碟重新整理操作
innodb_flush_log_at_trx_commit=2 在每次執行事務時都將redo log buffer寫入日誌檔案,但是不對其執行磁碟重新整理操作
innodb_flush_method:影響了伺服器flush資料或日誌檔案的方法。
具體有三個選值:預設的default,innodb使用fsync()函式flush資料和日誌檔案;
O_DIRECT,innodb使用O_DIRECT的方式開啟資料檔案,並使用fsync()函式flush資料和日誌檔案;
O_DSYNC,innodb使用O_SYNC開啟並flush日誌檔案,使用fsync()函式flush資料檔案。
注:在類unix作業系統中,檔案的開啟方式為O_DIRECT會最小化緩衝對io的影響,該檔案的io是直接在使用者空間的buffer上操作的, 並且io操作是同步的,因此不管是read()系統呼叫還是write()系統呼叫,資料都保證是從磁碟上讀取的;O_SYNC方式表示以同步io的方式 開啟檔案,任何寫操作都將阻塞到資料寫入物理磁碟後才返回。fsync(int filedes)函式只對由檔案描述符filedes指定的單一檔案起作用,並且等待寫磁碟操作結束,然後返回。fdatasync(int filedes)函式類似於fsync,但它隻影響檔案的資料部分。而除資料外,fsync還會同步更新檔案的元資訊到磁碟。
sync_binlog:
sync_binlog=N表示每寫緩衝N次,就同步到磁碟,對於innodb事務,即使事務還未commit,sync_binlog=1時,還 會寫日誌。如果此時崩潰,這個事務會被回滾,但binlog已經記錄了該事務資訊,無法回滾。可以透過設定:innodb_support_xa=1解 決。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7916042/viewspace-1057427/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【MySQL】五、sync_binlog innodb_flush_log_at_trx_commit 淺析MySqlMIT
- innodb_flush_log_at_trx_commitMIT
- mysql8.0插入慢之sync_binlog(一)MySql
- innodb_flush_log_at_trx_commit引數的直白理解MIT
- MySQL 備庫可以設定 sync_binlog 非 1 嗎?【轉】MySql
- MySQL:Innodb:innodb_flush_log_at_trx_commit引數影響的位置MySqlMIT
- mysql插入慢之所innodb_flush_log_at_trx_commit引數的意義MySqlMIT
- 路徑中./和../和/
- ../和./和/的區別
- not in 和 not exists 比較和用法
- xftp和xshell,xftp和xshell的下載和安裝FTP
- #和&
- !=和<>
- ABAP和Java的destination和JNDIJava
- @NotEmpty和@NotBlank和@NotNull小結Null
- 字首和與二維字首和
- ♻️同步和非同步;並行和併發;阻塞和非阻塞非同步並行
- XML基本操作-建立(DOM和LOINQ)和LINQ查詢和儲存XML
- workman 和swoole 區別 和異同
- 寬鬆相等和嚴格相等(==和===)
- 淺談mouseenter和mouseover,mouseout和mouseleave
- csv和excel讀取和下載Excel
- Cookie 和 Session 關係和區別CookieSession
- javafx 和swing_整合JavaFX和SwingJava
- 檔案路徑問題( ./ 和 ../ 和 @/ )
- 堆和棧的概念和區別
- ThymeleafViewResolver和SpringTemplateEngine和SpringResourceTemplateResolver的關係ViewSpring
- 尤拉計劃739:和的和
- 【-Flutter/Dart 語法補遺-】 sync* 和 async* 、yield 和yield* 、async 和 awaitFlutterDartAI
- if if和if else if
- ul和
- 字首和
- equals 和 ==
- Redis RDB和AOF取捨和選擇Redis
- ssr、ss和vpn介紹和區別
- 使用Jquery和JSON的州和城市列表jQueryJSON
- VM和Container 虛擬機器和容器AI虛擬機
- 和AI談倫理、道德和謊言AI
- 堆和棧的解釋和區別