MySQL 是一款流行的关系型数据库,其日志是其关键功能之一。MySQL 包括三种类型的日志,分别是binlog、 redolog 和 undolog,它们分别有不同的作用和特点。
binlog ,binlog(Binary log)是 MySQL 中的二进制日志文件,用于记录 MySQL 服务器上的所有更新和修 改操作。它可以记录所有的 DDL(Data Definition Language)和 DML(Data Modification Language)操 作,包括对表结构的更改、数据的插入、修改、删除等等。binlog是在事务提交后生成的,因此可以用于恢复 数据库。
redolog ,redolog(Redo log)用于恢复数据,保证数据的一致性和持久性。当 MySQL 发生修改时, redolog 会将这些操作记录下来,并写入磁盘。这样,当 MySQL 发生宕机或崩溃时,通过重放 redolog 就可 以恢复数据。
undolog,undolog(Undo log)用于回滚操作。当 MySQL 发生事务回滚时,undolog 会记录这些操作并将 其写入磁盘。这样,当 MySQL 需要回滚时,通过重放 undolog 就可以回滚事务。
区别:
binlog 和 redolog 都是 MySQL 中的二进制日志,但是它们的作用和实现方式有所不同。binlog 是 MySQL 记 录所有的操作,而 redolog 则是用于保证数据的一致性和持久性。此外,binlog 是逻辑日志,redolog 是物 理日志。binlog 记录的是SQL语句,而 redolog 记录的是数据⻚的修改,所以 binlog 可以跨平台使用,而 redolog 不能。undolog 和 redolog 的区别是,undolog 是用于回滚操作的,而 redolog 是用于恢复数据 的