zoukankan      html  css  js  c++  java
  • MYSQL事务的日志

    1.事务日志

    1.redo log

    redo,顾名思义“重做日志”,是事务日志的一种
    
    作用:
         在事务ACID过程中,实现的是“D”持久化的作用。
    
         REDO:记录的是,内存数据页的变化过程
    
         特性:WAL(Write Ahead Log)日志优先写
    文字描述流程:
                # 修改
                1)首先将表中id=1的行所在数据页加载到内存中data buffer page
                2)MySQL实例在内存中将id=1的数据页改成id=2
                3)id=1变成id=2的变化过程会记录到,redo内存区域,也就是redo buffer page中
                4)当敲下commit命令的瞬间,MySQL会将redo buffer page写入磁盘区域redo log
                5)当写入成功之后,commit返回ok
    
               # 查询
               1.首先将表中id=1的行所在数据页加载到内存中data buffer page
               2.将redo log中id=1变成id=2的变化过程取加载到redo buffer page
               3.通过data buffer page和redo buffer page得到一个结果
    

    2.undo log

    undo,顾名思义“回滚日志”,是事务日志的一种
    
    作用:
         在事务ACID过程中,实现的是“A”原子性的作用。当然CI的特性也和undo有关
    

    3.redo和undo的存储位置

    #redo位置
    [root@db01 data]# ll /application/mysql/data/
    -rw-rw---- 1 mysql mysql 50331648 Aug 15 06:34 ib_logfile0
    -rw-rw---- 1 mysql mysql 50331648 Mar  6  2017 ib_logfile1
    
    #undo位置
    [root@db01 data]# ll /application/mysql/data/
    -rw-rw---- 1 mysql mysql 79691776 Aug 15 06:34 ibdata1
    -rw-rw---- 1 mysql mysql 79691776 Aug 15 06:34 ibdata2
    
  • 相关阅读:
    Junit单元测试
    点餐系统
    文件的横纵转换
    零碎知识--日积月累
    json校验
    程序员必须收藏的14个顶级开发社区!
    管理员权限
    Thinking In Java 读书笔记
    学生考试系统
    JeeSite开发笔记
  • 原文地址:https://www.cnblogs.com/Applogize/p/13374231.html
Copyright © 2011-2022 走看看