redo log和undo log的区别
时间: 2024-04-03 22:26:41 浏览: 64
详解MySQL 重做日志(redo log)与回滚日志(undo logo)
5星 · 资源好评率100%
redo log和undo log都是MySQL中的日志文件,但是它们的作用不同。redo log记录了所有修改过的数据页的物理操作,用于在崩溃恢复时重做未完成的事务,而undo log则记录了每个事务所做的修改操作的相反操作,用于在回滚事务时撤销已完成的事务。
具体来说,redo log是在事务执行过程中记录的,它会记录每个修改操作的物理信息,包括修改的页号、偏移量、修改前后的数据等。当系统崩溃后,MySQL会根据redo log中的信息重新执行未完成的事务,从而保证数据的一致性。
而undo log则是在事务提交之前记录的,它会记录每个修改操作的逻辑信息,包括修改的表、行、列等。当需要回滚事务时,MySQL会根据undo log中的信息撤销已完成的事务,从而恢复到事务开始之前的状态。
阅读全文