binLog主要用来对数据库进行数据备份、崩溃恢复和数据复制等操作,redoLog和undoLog主要用于事务管理,记录的是数据修改操作和回滚操作。redoLog用来做恢复,undoLog用来做回滚。
在mysql中,redoLog和undoLog只适用于InnoDB存储引擎,因为要支持事务。而不适用于MyISAM等其他存储引擎。而binLog适用于所有存储引擎。
binLog是mysql用于记录数据库中的所有DDL语句和DML语句的一种二进制日志。它记录了所有对数据库结构和数据的修改操作。bingLog主要用来对数据库进行备份、灾难恢复和数据复制等操作。binLog的格式分为基于语句的格式和基于行的格式。
目的:RedoLog的目的是为了保证事务的持久性,主要用于崩溃恢复,而UndoLog的目的是为了保证事务的原子性和一致性,主要用于事务回滚。另外,undoLog还支持MVCC(多版本并发控制)机制,用于在并发事务执行时提供一定的隔离性。
记录内容:RedoLog记录了事务的所有数据更改(这些日志不仅仅记录了数据更改的最终结果,而且还记录了实现这些修改的具体操作)。而undoLog记录的是事务执行前的内容。