Mysql日志binlog、redolog和undolog
一、binlog mysql server产生 逻辑日志 追加写入
1. 什么是binlog?
它记录了数据库执行的所有写操作(不包括查询select)。
2.binlog日志有两个主要作用。
1)mysql主从复制:mysql replication在master端开启binlog,master把它的二进制日志传递给slaves来达到master-slave数据一致的目的。
2)数据恢复:通过mysqlbinlog工具来恢复数据。
二、redolog innoDB存储引擎产生 物理日志 效率快 具备幂等性 循环写入
1. 什么是redolog?它也记录了数据库执行的所有写操作(不包括查询select)。
redo log的主要功能是用于数据库崩溃时的数据恢复。
redo Log包括两部分:
1)内存中的重做日志缓冲(Redo Log Buffer),该部分日志是易失性的;
2)磁盘上的重做日志文件(Redo Log File),该部分日志是持久的。
2. redolog:提供前滚操作。保证事务的持久性。
持久性:Innodb的redolog 记录数据修改的操作日志,当事务提交的时候,会将数据刷盘。
3. binlog和redolog区别:
三、undolog innoDB存储引擎产生 逻辑日志
1.什么是undolog? undolog存储的是事务的回滚数据,存储的数据回滚的关键信息。
用来回滚记录到某个版本。实现MVCC多版本控制。
2. undolog:提供回滚操作。保证事务的原子性。
原子性:Innodb的undolog 记录旧数据,进行事务回滚。
四、详解一条 SQL 的执行过程 参考:详解一条 SQL 的执行过程