binlog、redolog、undolog

78 阅读1分钟

Binlog(二进制日志): 作用: 记录对数据库执行的所有修改操作,以二进制格式存储。 用途: 主要用于数据复制和恢复。 特点: 是一种追加写的日志,记录的是逻辑变更,不是物理变更。

Redo Log(重做日志): 作用: 记录数据库引擎对数据进行的所有修改操作,以确保数据库的事务持久性。 用途: 主要用于崩溃恢复,确保在数据库发生故障时可以通过重做日志重新执行事务,将数据还原到崩溃前的状态。 特点: 是一种物理日志,记录的是修改了哪些数据块。

Undo Log(撤销日志): 作用: 记录事务执行过程中对数据所做的修改的逆操作,以支持事务的回滚和并发控制。 用途: 主要用于回滚事务,提供一致性读(consistent read)。 特点: 记录了事务发生之前的数据状态,是一种逻辑日志。

在一个事务中,undo log 记录了事务执行过程中对数据的修改,而 redo log 记录了这些修改的物理变化。 同时,binlog 记录了对数据库执行的所有逻辑修改,包括事务的开始和提交等信息,主要用于复制和恢复。 这三种日志在数据库引擎中相互配合,确保数据库的一致性、持久性和并发控制。