InnoDB文件筆記(二) Redo Log

2021-09-24 09:27:22 字數 1054 閱讀 3057

接著上篇,現在開始看看各個模組,文件上的內容有點弱, 詳細的可以看看,《mysql技術內幕(innodb儲存引擎)》這本書的第七章!

redo log是基於磁碟的資料結構,用來恢復由於未完成事務造成的資料修改。預設情況下,redo log在ib_logfile0和ib_logfile1這個兩個檔案中,m預設大小為5mb。事務的執行,會向redo log中記錄相應資料頁的修改。

redo log用保證事務的永續性。redo log通常是物理日誌,記錄的是資料頁的物理修改。

redo log size = innodb_log_files_in_group * innodb_log_file_size

redo log:redo log buffer 、redo log file

redo log持久化:redo log buffer -> os buffer -> redo log file

innodb記錄了資料檔案的物理修改,並且保證日誌先行,即wal(write-ahead logging)。

lns(log sequence number)記錄日誌序號。

redo log以順序的方式寫入檔案,寫滿時則回溯到第乙個檔案,進行覆蓋。

redo log在儲存引擎層產生,是物理格式日誌;bin log在資料庫的上層產生,是邏輯日誌,無論什麼儲存引擎都會產生。

通過innodb_flush_log_at_trx_commit控制,值有0、1、2,預設為1

redo log基於頁儲存,預設大小為16kb,由多個log block組成,乙個log block大小為512位元組。

參考lsn

讓redo log files足夠大,但不能太大

增加log buffer大小

配置innodb_log_write_ahead_size配置選項,以避免「讀寫」。

innodb引擎redo檔案維護

如果要對innodb的redo日誌檔案的大小與個數進行調整可以採用如下步驟 1 關閉mysql mysqladmin h127.0.0.1 p3306 uroot p shutdown 2 修改配置檔案中的innodb log file size innodb log files in group ...

InnoDB儲存引擎redo和undo log

1 undo log undo log 是為了實現事務的原子性,在mysql資料庫innodb儲存引擎中,還用undo log來實現多版本併發控制 簡稱 mvcc 事務的原子性 atomicity 事務中的所有操作,要麼全部完成,要麼不做任何操作,不能只做部分操作。如果在執行的過程中發生了錯誤,要回...

innodb 01 redo 日誌詳解

1 二進位制日誌server層產生,redo是innodb層產生。並且binlog先於redolog被記錄 2 binlog記錄操作的方法是邏輯性的語句,基於行格式。redolog是innodb層產生的日誌,記錄資料庫每個頁的修改。3 binlog是事務提交的時候,一次性寫入,redolog是資料準...