天天看點

undolog redolog binlog

redo和binlog差別:

1、首先2者都是記錄資料的改變,不同的是,binlog是記錄所有資料的改變資訊,而innodb的redo log隻是記錄所有innodb表資料的變化。

2、binlog是記錄已經送出完畢之後的dml以及ddl sql語句,而innodb redo log是正在執行中的dml以及ddl語句

3、binlog可以作為恢複資料使用 redo log可以作為異常down機或者媒體故障後的資料恢複使用

4、在db檔案目錄下,也分屬于不通的日志檔案中。

undo log 實作原子性和持久化的事務的簡化過程

假設有A、B兩個資料,值分别為1,2。

A.事務開始.

B.記錄A=1到undolog.

C.修改A=3.

D.記錄B=2到undolog.

E.修改B=4.

F.将undolog寫到磁盤。

G.将資料寫到磁盤。

H.事務送出

Undo+Redo

事務的簡化過程

假設有A、B兩個資料,值分别為1,2.

D.記錄A=3到redolog.

E.記錄B=2到undolog.

F.修改B=4.

G.記錄B=4到redolog.

H.将redolog寫入磁盤。

I.事務送出

事務的特點

A.為了保證持久性,必須在事務送出前将RedoLog持久化。

B.資料不需要在事務送出前寫入磁盤,而是緩存在記憶體中。

C.RedoLog保證事務的持久性。

D.UndoLog保證事務的原子性。

E.有一個隐含的特點,資料必須要晚于redolog寫入持久存

繼續閱讀