緩衝日誌和無緩衝日誌

2021-09-19 03:03:46 字數 614 閱讀 7092

緩衝日誌和無緩衝日誌的操作方式完全相同,區別在於何時將日誌記錄寫入磁碟上。

緩衝日誌和無緩衝日誌都會捕獲ddl和dml語句。

無緩衝日誌的資料庫中,只要事務提交,就會把包含該事務的物理日誌buffer和邏輯日誌buffer重新整理到磁碟。

緩衝日誌的資料庫,在事務提交的時候,這些事務的資訊將會保留在物理日誌buffer和邏輯日誌buffer中,直到這兩個區域被填滿或發生檢查點才會重新整理到磁碟。

有乙個比較複雜的情況:

如果乙個資料庫例項中有多個資料庫,其中乙個是無緩衝日誌,其他是緩衝日誌。則物理日誌buffer和邏輯日誌buffer的重新整理會優先根據無日誌緩衝的資料庫來。

無緩衝日誌的優勢:

當發生意外的時候,資料完整性和一致性都可以得到保障。

無緩衝日誌的缺點:

緩衝區的重新整理是根據當前事務的進度將整個緩衝區內容都寫入邏輯日誌中,所以邏輯日誌的頁面會有很多無用的資料。換言之,甚至邏輯日誌緩衝中,沒有提交的事務也會重新整理到磁碟。

從這樣的理解來看,在實際環境中,我們建議如下:

1、使用無日誌緩衝的資料庫;

2、物理日誌buffer和邏輯日誌buffer都要增大;

3、物理日誌和邏輯日誌所在的磁碟的iops要盡可能的大,越高越好。

innodb重做日誌緩衝

innodb記憶體區域除了緩衝池外,還有重做日誌緩衝。innodb儲存引擎會先將重做日誌資訊寫入緩衝區,然後按照一定頻率重新整理到重做日誌檔案。其可由引數innodb log buffer size進行控制。mysql show variables like innodb log buffer si...

innodb重做日誌緩衝

innodb記憶體區域除了緩衝池外,還有重做日誌緩衝。innodb儲存引擎會先將重做日誌資訊寫入緩衝區,然後按照一定頻率重新整理到重做日誌檔案。其可由引數innodb log buffer size進行控制。mysql show variables like innodb log buffer si...

緩衝 與 無緩衝

先看下面的程式 在上面的程式中printf函式列印的字串最後沒有帶換行符,而且最後呼叫了 exit 函式,這導致了最後沒有列印出 hello world 下面先介紹幾種緩衝機制 1 全緩衝 全緩衝指的是系統在填滿標準io緩衝區之後才進行實際的io操作 注意,對於駐留在磁碟上的檔案來說通常是由標準io...