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

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中恢复数据

例子:

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 什么是事务 事务是一条或多条数据库操作语句的组合,具备ACID,4个特点。 原子性:要不全部成功,要不全部撤销 隔...
    jiangmo阅读 1,109评论 0 3
  • --- layout: post title: "如果有人问你关系型数据库的原理,叫他看这篇文章(转)" date...
    蓝坠星阅读 840评论 0 3
  • 数据库概念 锁分类 锁(按照锁粒度分类) 表级锁:每次操作锁住整张表。开销小,加锁快;不会出现死锁;锁定粒度大,发...
    尘世的鱼阅读 810评论 1 8
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,475评论 0 9
  • 午夜十二时,整个城市都安静下来,稀稀疏疏的车辆从楼下经过。莫小西看着窗外,月光惨淡,楼下的灯光却异常刺眼。...
    北之井阅读 209评论 0 1