InnoDB undo, redo,binlog,data什么时候写?

undo:相当于数据修改前的备份

redo: 相当于数据修改后的备份,为了保证事务的持久化,redo会一直写

Undo + Redo事务的简化过程
  假设有A、B两个数据,值分别为1,2.
  A.事务开始.
  B.记录A=1到undo log.
  C.修改A=3.
  D.记录A=3到redo log.
  E.记录B=2到undo log.
  F.修改B=4.
  G.记录B=4到redo log.
  H.将redo log写入磁盘。
  I.事务提交

Undo + Redo事务的特点
  A. 为了保证持久性,必须在事务提交前将Redo Log持久化。
  B. 数据不需要在事务提交前写入磁盘,而是缓存在内存中。    ---data在此不需要写磁盘,但是如果redo文件过小也会触发事务未提交前数据落盘
  C. Redo Log 保证事务的持久性  
  D. Undo Log 保证事务的原子性。
  E. 有一个隐含的特点,数据必须要晚于redo log写入持久存储。

binlog:事务提交时写

时间: 2024-09-30 09:02:54

InnoDB undo, redo,binlog,data什么时候写?的相关文章

Redo,Undo,Binlog

https://www.jianshu.com/p/d829df873332 https://www.jianshu.com/p/57c510f4ec28 对于面向disk的数据库, 需要把数据先写入到page中,然后成批的flush到磁盘,所以在Page没有flush前需要有log能记录下page的state 这就是Redo,所以Redo是物理的,因为记录的是Page的具体变更,用Redo的目的是恢复出之前的page Redo本身也是要写disk,每个操作去写也不合适,所以Redo也有个buf

redo、undo、binlog的区别

在MySQL中,redo.undo.binlog经常见,但很容易混淆这三者.   redo undo binlog 作用 保持事务的持久性 帮助事务回滚及MVCC的功能 进行Point-In-Time的恢复及主从复制环境的建立 产生主体 InnoDB MySQL MySQL 类型 物理日志 逻辑日志 逻辑日志 内容 每个页的修改 修改前的行数据 执行的SQL语句 每个事务的日志数量 事务执行中不断写入,多事务可并发写入 看修改的行数据量 事务提交后记一条SQL语句

MySQL InnoDB存储引擎undo redo解析

本文是介绍MySQL数据库InnoDB存储引擎重做日志漫游 00 – Undo Log Undo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中.还用Undo Log来实现多版本号并发控制(简称:MVCC). - 事务的原子性(Atomicity) 事务中的所有操作,要么所有完毕,要么不做不论什么操作.不能仅仅做部分操作. 假设在运行的过程中发生 了错误,要回滚(Rollback)到事务開始前的状态,就像这个事务从来没有运行过. - 原理 Undo Log的原理非常ea

【转载】MySQL 日志 undo | redo

本文是介绍MySQL数据库InnoDB存储引擎重做日志漫游 00 – Undo LogUndo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版本并发控制(简称:MVCC). - 事务的原子性(Atomicity)  事务中的所有操作,要么全部完成,要么不做任何操作,不能只做部分操作.如果在执行的过程中发生  了错误,要回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过. - 原理  Undo Log的原理很简单,为了满

[转]MySQL日志——Undo | Redo

本文是介绍MySQL数据库InnoDB存储引擎重做日志漫游 00 – Undo LogUndo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版本并发控制(简称:MVCC). - 事务的原子性(Atomicity)  事务中的所有操作,要么全部完成,要么不做任何操作,不能只做部分操作.如果在执行的过程中发生  了错误,要回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过. - 原理  Undo Log的原理很简单,为了满

MySQL undo redo

本文是介绍MySQL数据库InnoDB存储引擎重做日志漫游 00 – Undo LogUndo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版本并发控制(简称:MVCC). - 事务的原子性(Atomicity)  事务中的所有操作,要么全部完成,要么不做任何操作,不能只做部分操作.如果在执行的过程中发生  了错误,要回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过. - 原理  Undo Log的原理很简单,为了满

转:C#中Undo/Redo的一个简易实现

一个比较常见的改进用户体验的方案是用Redo/Undo来取代确认对话框,由于这个功能比较常用,本文简单的给了一个在C#中通过Command模式实现Redo/Undo方案的例子,以供后续查询. class Program { static void Main(string[] args) { var cmds = new CommandManager(); while (true) { var key = Console.ReadKey(true); if (key.KeyChar >= '0'

Oracle Undo Redo(转)

转贴: http://www.cuug.com/xueyuanzhuanqu/jishuwenzhang/201108/jishuwenzhang-245.html http://paul0407.blogspot.tw/2008/01/oracle-redoundorollback-segment.html http://blog.csdn.net/robinson_0612/article/details/5731158 Oracle Undo Redo Redo redo 记录 trans

undo/redo功能的原理和思路

一些具有操作记录的系统,如店铺装修.富文本编辑等,都具有undo/redo功能,可实现界面操作过程的撤销和恢复,简述开发undo/redo功能的原理和思路. undo是将用户上一步做的操作对程序造成的改动恢复到改动之前,而redo操作是指重新实现这种改动. undo/redo操作的实现方式分为两类:记录数据和记录操作. 记录数据是指将信息编辑窗口打开时,保存原始数据,然后记录用户每次操作后的结果数据,这里的数据是指信息编辑窗口中所有可能发生变动的数据.做undo操作时程序将用户上一步操作前的数据