回滚日志undoLog

编程入门 行业动态 更新时间:2024-10-23 10:22:12

回滚<a href=https://www.elefans.com/category/jswz/34/1770796.html style=日志undoLog"/>

回滚日志undoLog

MVCC其实是通过undo log来实现的, 可以认为是通过在每行记录后面保存两个隐藏的列来实现的。
这两个列,第一个是记录历史版本信息的指针,第二个是数据行的删除标记。

在MySQL中,当我们对某条记录执行更新操作时,MySQL会将原有记录标记为删除,并在数据行中新增一条记录。这条新增的记录就是新版本的记录,同时原有记录的指针会指向这个新的记录。这种做法称为行级别的事务。


每开始一个新的事务,系统版本号就会自动递增,事务开始时刻的系统版本号会作为事务的ID。

undo用来回滚行记录到某个版本。undo log一般是逻辑日志,根据每行记录进行记录。

 

进行数据更新操作的时候,不仅会记录redo log,还会记录undo log,
如果因为某些原因导致事务回滚,那么这个时候MySQL就要执行回滚(rollback)操作,利用undo log将数据恢复到事务开始之前的状态。

 

如我们执行下面一条删除语句:
delete from user where id = 1;
那么此时undo log会记录一条对应的insert 语句【反向操作的语句】,以保证在事务回滚时,将数据还原回去。

 

 

更多推荐

回滚日志undoLog

本文发布于:2023-11-15 06:14:47,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1595083.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:日志   undoLog

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!