美文网首页Mysqlsql
undo log,当前读和快照读,redo log

undo log,当前读和快照读,redo log

作者: 剑道_7ffc | 来源:发表于2019-04-19 07:08 被阅读38次

    Undo log

    是什么

    在操作之前,把需要操作的数据备份到undo log中,若查询数据就有undo log +不在undo log的数据(事务未提交之前)

    作用

    当rollback将数据恢复到原始之前类似于备份表,为了保证事务的原子性

    Innodb使用undo log实现mvcc,从undo log读取旧版本的数据

    例子

    当前读和快照读

    简介

    快照读

    读取的是快照版本:undo +未修改的表的数据

    普通的select

    当前读

    读取的是最新版本,通过锁机制来保证读取的数据无法被其他事务修改

    如insert,delete,update, select .... lock in share mode,select .... for update等

    Redo log

    是什么

    在操作完一条语句后,将最新的数据备份到redo log中

    作用

    为了事务的持久化,当执行完commit,若redo log写完了,则事务提交成功,将redo log写入表中是开启异步的线程执行的,若提交后突然断电,mysql可以用redo log中恢复数据

    例子:

    相关文章

      网友评论

        本文标题:undo log,当前读和快照读,redo log

        本文链接:https://www.haomeiwen.com/subject/xpsfgqtx.html