码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • redolog和undolog


    一、什么是redolog

    redolog是基于InnoDB存储引擎下的日志文件,也叫重做日志。用于记录数据页的物理变化,记录数据修改后的值。无论事务是否成功提交都会产生记录。当mysql产生故障,可以采用redolog日志恢复数据,同时redolog日志是顺序写入磁盘,也就是顺序IO,刷盘速率快。MYSQL事务的持久性就体现在这一方面。

    redolog包括两部分,一是redolog buff(内存中的日志缓冲区),一是redolog file(日志文件)。MYSQL执行一次DML语句,会先将记录写入redlog buff中,后在某一个时间点再一次性将这些记录写入redolog file。也就是WAL(Write-Ahead Logging)技术(先写日志后刷盘)

    二、为什么需要redolog

    简单来讲,redolog保证了事务的持久性。InnoDB引擎下,数据的读写操作都是在从磁盘文件(idb文件)中一次性拷贝一页的数据到buff pool中。事务提交后buff pool不会立即刷盘(因为InnoDB是以页为单位与磁盘进行交互的,一个事务可能只修改了一页上的几个字节,此时如果将整页数据进行刷盘太浪费资源。二是因为一个事务涉及到的数据可能存放在多个数据页上,彼此并不连续。也就是会产生随机IO,随机IO需要进行磁盘的磁头寻道等操作会消耗更多随机成本)

    所以需要引入redolog,任意事务对任意页进行的修改都会记录在redolog里,在事务提交后,我们只需要保证redolog成功落盘即可,同时redolog是追加写操作,也就是顺序IO,落盘时时间成本低。即使mysql宕机了,我们也可以通过redolog恢复数据。

    三、undolog

    undolog用来实现事务四大特性中有一个是原子性,原子性是指对数据库的一系列操作,要么全部成功,要么全部失败,不可能出现部分成功的情况。

    undo log主要记录数据的逻辑变化,比如一条INSERT语句对应一掉DELETE的undo log,一个UPDATE语句对应一条相反的undo log,这样在发生错误的时候,可以使事务回滚到之前的数据状态。

     

     

     


     

  • 相关阅读:
    adb调试系统app
    ZooKeeper学习笔记
    虚实融合 智兴百业 | 赵捷副市长莅临拓世科技集团筹备展台指导,本月19号!拓世科技集团与您相约世界VR产业大会
    SpringSecurity - 启动流程分析(十二)- ExceptionTranslationFilter 过滤器
    NLP模型(二)——GloVe介绍
    【C++基于多设计模式下的同步&异步日志系统】
    Vue 通过组件的ref获取元素的高度。
    Python使用turtle绘制简单图形-绘制“圆“turtle.circle()
    [附源码]JAVA毕业设计客户台账管理(系统+LW)
    【单元测试】如何使用 JUnit5 框架?
  • 原文地址:https://blog.csdn.net/weixin_48841931/article/details/134092643
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号