MYSQL事務的日誌
阿新 • • 發佈:2020-07-24
1.事務日誌
1.redo log
redo,顧名思義“重做日誌”,是事務日誌的一種 作用: 在事務ACID過程中,實現的是“D”持久化的作用。 REDO:記錄的是,記憶體資料頁的變化過程 特性:WAL(Write Ahead Log)日誌優先寫 文字描述流程: # 修改 1)首先將表中id=1的行所在資料頁載入到記憶體中data buffer page 2)MySQL例項在記憶體中將id=1的資料頁改成id=2 3)id=1變成id=2的變化過程會記錄到,redo記憶體區域,也就是redo buffer page中 4)當敲下commit命令的瞬間,MySQL會將redo buffer page寫入磁碟區域redo log 5)當寫入成功之後,commit返回ok # 查詢 1.首先將表中id=1的行所在資料頁載入到記憶體中data buffer page 2.將redo log中id=1變成id=2的變化過程取載入到redo buffer page 3.通過data buffer page和redo buffer page得到一個結果
2.undo log
undo,顧名思義“回滾日誌”,是事務日誌的一種
作用:
在事務ACID過程中,實現的是“A”原子性的作用。當然CI的特性也和undo有關
3.redo和undo的儲存位置
#redo位置 [root@db01 data]# ll /application/mysql/data/ -rw-rw---- 1 mysql mysql 50331648 Aug 15 06:34 ib_logfile0 -rw-rw---- 1 mysql mysql 50331648 Mar 6 2017 ib_logfile1 #undo位置 [root@db01 data]# ll /application/mysql/data/ -rw-rw---- 1 mysql mysql 79691776 Aug 15 06:34 ibdata1 -rw-rw---- 1 mysql mysql 79691776 Aug 15 06:34 ibdata2