UndoLog浅析

UndoLog是数据库事务管理的重要组成部分,它确保了事务的原子性,使得在错误或Rollback时能恢复数据到初始状态。同时,UndoLog在InnoDB存储引擎中用于实现多版本并发控制(MVCC),提供旧版本数据快照,支持并发读取。事务开始前产生,提交后由后台线程逐步回收。
摘要由CSDN通过智能技术生成

UndoLog

基本

Undo:意为撤销或取消,以撤销操作为目的,返回某个状态的操作。

Undo Log: 数据库事务开始之前,会将要修改的记录放到Undo日志里,当事务回滚时或者数据库崩溃时,可以利用UndoLog撤销未提交事务对数据库产生的影响。

Undo Log的产生和销毁: Undo Log在事务开始前产生; 事务在提交时,并不会立刻删除undo log,innodb会将该事务对应的undo log放到删除列表中,后面会通过一个后台线程purge thread进行回收处理。 Undo Log属于逻辑日志,记录一个变化过程。 例如执行一个delete,undo log会记录一个insert; 执行一个update, undolog会记录一个相反的update

Undo log的作用

  • 实现了事务的原子性

    Undo log 是为了实现事务的原子性的产物。 事务处理过程中, 如果出现了错误或用户执行了RoLLBack 语句,mysql可以利用undolog中的备份将数据恢复到事务开始之前的状态。

  • 实现多版本并发控制(MVCC)

    Undolog 在mysql innodb存储引擎中用来实现多版本并发控制。 事务未提交之前,undolog保存了未提交之前的版本数据,undolog中的数据可作为数据旧版本快照供其他并发事务进行快照度。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值