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寫入持久存