日志是mysql数据库的重要组成部分,其中三大日志binlog、redoLog、undoLog三种日志:
简单讲:
bin log是归档日志,属于逻辑日志,是以二进制的形式记录的,记录数据库执行的写入性操作(不包括查询)。
主要场景有两个“ 主从复制”和“数据恢复”;
redo log是InnoDB存储引擎层的日志,又称重做日志文件,用于记录事务操作的变化,记录的是数据修改之后的值,不管事务是否提交都会记录下来。
如数据库掉电,InnoDB存储引擎会使用redo log恢复到掉电前的时刻,以此来保证数据的完整性。
undo log主要记录了数据的逻辑变化,比如一条INSERT语句,对应一条DELETE的undo log,对于每个UPDATE语句,对应一条相反的UPDATE的undo log,这样在发生错误时,就能回滚到事务之前的数据状态。
undo log是保存了事务发生之前的数据的一个版本,可以用于回滚。
同时可以提供多版本并发控制下的读(MVCC),也即非锁定读
详细了解参考 原文链接:MySQL三大日志——binlog、redoLog、undoLog详解_binlog是逻辑日志还是物理日志_向着百万年薪努力的小赵的博客-CSDN博客