InnoDB数据多版本机制

InnoDB引擎内部在保存数据到数据库时,每一行都有3个自动生成的内部列:

DB_TRX_IDG:占用6B,用来标记事务的标示符,记录下最后一个事务的操作类型(更新或修改),删除操作会被当成update处理,只是在其中设置特殊的位置指出实际操作为delete

DB_ROLL_PRT:占用TB,被称为回滚标记,用于指定UNDO日志记录写到回滚段中的位置。如果记录被更新,那么UNDO日志会包含用于构造记录更新前状态的所有必要信息

DB_ROW_ID:占用6B,就是该记录行的行ID

回滚段中的UNDO日志分为insert UNDO日志和update UNDO日志两种:

inset UNDO日志仅在事务回滚时需要,事务提交后即可被废除

update UNDO日志则用于构造一致性读

 

只有当InnoDB废弃了update UNDO日志后,才会从物理上移除关联的列和索引记录,这种移除操作被称为purge,执行速度很快

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值