zoukankan      html  css  js  c++  java
  • 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:事务提交时写(先写redo再写binlog),何时刷盘由sync_binlog决定

  • 相关阅读:
    开发者入门必读:最值得看的十大机器学习公开课
    ansible 文件模块,很实用
    前端之Bootstrap框架
    47考题整理
    前端之jQuery
    前端之BOM和DOM
    python补充之进制转换、exec、eval、compile
    JavaScript
    css(2)
    前端之form表单与css(1)
  • 原文地址:https://www.cnblogs.com/xingye001/p/4379466.html
Copyright © 2011-2022 走看看