MYSQL事务的日志

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
posted @ 2020-07-24 20:13  等等马上就好  阅读(133)  评论(0编辑  收藏  举报