前言:
在MYSQL数据库中,binlog、redolog、undolog都是数据库日志类型文件。
binlog:主要用于数据库的数据备份,崩溃恢复和数据复制等操作。mysql主从复制
redolog:用来做恢复,事务持久性
undolog:用来做回滚
Mysql中 redolog和undolog只能适用于InnoDB,因为要支持事务。而binlog可以支持所有存储引擎。
binlog:
是Mysql用于记录数据库中所有的DDL和DML语句的一种二进制文件。它记录了所有insert、update、delete操作。主要用于对于数据库的数据备份,容灾恢复,数据复制等操作。
redolog:
是Mysql用于实现崩溃恢复和数据持久性的一种机制。在事务进行的全过程中,Mysql会将事务做了什么改动存储到redolog中,当系统发生异常情况时,Mysql会通过redolog中的记录来进行恢复操作,将事务所做的操作持久化到磁盘上。
undolog:
用于事务回滚或者是服务崩溃时回滚事务所做的操作,当一个事务执行完成之后,Mysql会将事务修改前的数据记录到undolog中,如果事务需要回滚,则会从undolog中找到对应的记录用来撤销事务所做的修改。
redolog和undolog区别:
redolog主要用于事务持久性,用来崩溃恢复
undolog主要是保证事务的原子性和一致性,主要用于事务回滚。
前者记录了事务所有的数据变更,包括中间具体的操作
后者是记录了事务执行之前的内容