首页 > 数据库 >mysql面试高频问题---事务undo log和redo log的区别

mysql面试高频问题---事务undo log和redo log的区别

时间:2024-02-23 15:48:49浏览次数:28  
标签:log 记录 undo --- 磁盘 日志 redo

事务undo log和redo log的区别

1. 问题

undo log和redo log都是mysql的日志文件,但是功能不一样。

  • 缓冲池(buffer pool):主内存中的一个区域,里面可以缓存磁盘上经常操作的真实数据,在执行增删改查操作时,先操作缓冲池中的数据(若缓冲池没有数据,则从磁盘加载并缓存),以一定频率刷新到磁盘,从而减少磁盘IO,加快处理速度
  • 数据页(page):是InnoDB 存储引擎磁盘管理的最小单元,每个页的大小默认为16KB。页中存储的是行数据

2. redo log 重做日志
redo log 重做日志,记录的是事务提交时数据页的物理修改,是用来实现事务的持久性。
该日志文件由两部分组成:重做日志缓冲(redo log buffer) 以及重做日志文件(redo log file) ,前者是在内存中,后者在磁盘中。当事务提交之后会把所有修改信息都存到该日志文件中,用于在刷新脏页到磁盘,发生错误时,进行数据恢复使用。(每个一段时间会进行清理)

3. undo log 回滚日志
undo log 回滚日志,用于记录数据被修改前的信息,作用包含两个:提供回滚和MVCC(多版本并发控制)。undo log和redo log记录物理日志不一样,它是逻辑日志。

  • 可以认为当delete一条记录时,undo log中会记录一 条对应的insert记录, 反之亦然,
  • 当update一条记录时, 它记录一条对应相反的update记录。 当执行rollback时, 就可以从undo log中的逻辑记录读取到相应的内容并进行回滚。
  • undo log可以实现事务的一致性和原子性

4. 总结

5. 问答

标签:log,记录,undo,---,磁盘,日志,redo
From: https://www.cnblogs.com/xiaolibiji/p/18029683

相关文章

  • [数据管理] 数据治理/大数据平台-开源软件与框架篇
    数据治理可以有效保障数据建设过程在一个合理高效的监管体系下进行,最终提供高质量、安全、流程可追溯的业务数据。1序:数据治理体系企业数据治理体系包括元数据管理、主数据管理、数据资产管理、数据质量管理、数据安全及数据标准等内容。2最新一代数据治理开源软件2.0一站......
  • NanoFramework操作ESP32(一)_基础元器件篇(二十五)_ KY-018光敏传感器
    一、元器件介绍   KY-020倾斜开关模块由一个10kΩ电阻器和一个具有双向导电性的金属球开关组成,该开关根据倾斜程度来打开/关闭电路。它不测量倾斜角。当电路向侧面倾斜时,只要以足够的力和倾斜度移动电路,即可激活内部的球开关,从而使电路闭合(稳定后电路断开)。以输出低电平电压......
  • mysql面试高频问题---事务-MVCC多版本并发控制(难)
    MVCC多版本并发控制1.问题锁:排他锁(如一个事务获取了一个数据行的排他锁,其他事务就不能再获取该行的其他锁)mvcc:多版本并发控制2.MVCC多版本并发控制MVCC全称Multi-VersionConcurrencyControl,多版本并发控制。指维护一个数据的多个版本,使得读写操作没有冲突MVCC的具体......
  • Go 100 mistakes - #62: Starting a goroutine without knowing when to stop it
       ......
  • 数学笔记(1)-勾股定理与勾股数
    勾股定理,是一个基本的几何定理,指直角三角形的两条直角边的平方和等于斜边的平方。中国古代称直角三角形为勾股形,并且直角边中较小者为勾,另一长直角边为股,斜边为弦,所以称这个定理为勾股定理,也有人称商高定理。勾股定理现约有500种证明方法,是数学定理中证明方法最多的定理之一。勾......
  • UtilMeta - 简洁高效的 Python 后端元框架
    最近开源了我开发多年的一个Python后端框架:UtilMeta项目介绍UtilMeta是一个用于开发API服务的后端元框架,基于Python类型注解标准高效构建声明式接口与ORM查询,能够自动解析请求参数与生成OpenAPI文档,高效开发RESTful接口,产出的代码简洁清晰,并且支持使用主流Python......
  • 迅为RK3568开发板驱动开发指南-输入子系统
     《iTOP-RK3568开发板驱动开发指南》更新,本次更新内容对应的是驱动(第十三篇输入子系统)视频,帮助用户快速入门,大大提升研发速度。 第13篇-输入子系统目录第1篇驱动基础篇第2篇字符设备基础第3篇并发与竞争第4篇高级字符设备进阶第5篇中断第6篇平台总线第7篇设备树......
  • three.js-坐标轴辅助器
    坐标轴辅助器(AxesHelper)用于简单模拟3个坐标轴的对象.红色代表X轴.绿色代表Y轴.蓝色代表Z轴.constaxesHelper=newTHREE.AxesHelper(5);scene.add(axesHelper);文档地址:https://threejs.org/docs/index.html#api/zh/helpers/AxesHelper构造函数(Constructor)A......
  • three.js-轨道控制器(OrbitControls)
    轨道控制器(OrbitControls)Orbitcontrols(轨道控制器)可以使得相机围绕目标进行轨道运动。要使用这一功能,就像在/examples(示例)目录中的所有文件一样,您必须在HTML中包含这个文件。进口OrbitControls是一个附加组件,必须显式导入。See Installation/Addons.import{OrbitCont......
  • Linux文本三剑客超详细教程---grep、sed、awk
    Linux文本三剑客超详细教程---grep、sed、awk羽林君 2023-10-1223:51 广东文章来源:https://www.cnblogs.com/along21/p/10366886.html awk、grep、sed是linux操作文本的三大利器,合称文本三剑客,也是必须掌握的linux命令之一。三者的功能都是处理文本,但侧重点各不相......