MySQL-binlog、redolog和undolog的区别

embedded/2024/9/25 11:10:41/

区别:
1、binlogmysql server层面的,用与数据备份和主从复制,每个执行引擎都有这个文件,比如Myisam和InnoDb
2、redoLog是InnoDb引擎特有的(实现了持久性),用于数据update,先将数据更新在内存,然后写入redolog,在空闲的时候写入磁盘
3、undlog也是InnoDb引擎特有的(实现了原子性),保存着更新前的语句,用于sql语句的回滚,MVCC用到了undolog,当读取的行被其他事务锁定时,可以从undolog找出该行记录之前的数据是什么,从而提供版本信息,保证用户的非一致性读取。
undolog—一条记录的每一次更新操作产生的 undo log 格式都有一个 roll_pointer 指针和一个 trx_id 事务id:

两阶段提交:在事务提交前redolog会有一个prepare阶段,这个阶段中先记录好redolog,然后在redolog提交commit之前,会记录binlog,记录好了之后会执行commit操作。

数据库崩溃能否使用undolog来恢复?
不能,因为undolog是循环写,写入磁盘后会将数据擦除。需要使用binlog来进行恢复,binlog是追加写。


http://www.ppmy.cn/embedded/113660.html

相关文章

数据预处理方法—数据清洗(DataCleaning)

1.为什么要进行数据预处理? 数据预处理方法的重要性在于它 能够清洗和转换原始数据,使其适合用于机器学习模型训练。有效的预处理可以帮助 去除噪声、处理缺失值和异常数据,提升模型的准确性和稳定性。 此外,合适的预处理还能 减少…

TypeScript入门 (二)控制语句

引言 大家好,我是GISer Liu😁,一名热爱AI技术的GIS开发者。本系列文章是我跟随DataWhale 2024年9月学习赛的TypeScript学习总结文档。本文主要讲解TypeScript中控制语句的部分;希望通过我的知识点总结,能够帮助你更好地…

【AI学习】了解OpenAI o1背后的self-play RL:开启新的智能道路

在ChatGPT刚刚出来的时候,沐神关于ChatGPT有一段视频,只有几分钟,却是讲得极其透彻的一段。大概意思就是,过去的AI智能水平,比如五年前,大概相当于人类5秒钟思考的程度,包括自动驾驶&#xff0c…

四十、登陆-sessionid鉴权

目录 一、将sessionID持久化 1、这里的GetAuthKey函数创建sessionID保存的key 二、完成鉴权方法Auth 三、在路由方法中增加需要鉴权的路由 四、自行测试 一、将sessionID持久化 //sessionid持久化authKey : utils.GetAuthKey(sessionID)err c.rdb.Set(ctx, authKey, time…

SparkSQL-优雅行列转换

行列转换是数据处理与分析中的关键操作,它能够将数据的结构从行转为列,或从列转为行。这种转换不仅简化了复杂的数据展示,还提升了数据分析的效率。在业务场景中,行列转换常用于报表生成、数据透视和多维度数据分析,通…

25. MyBatis中的RowBounds是什么?如何实现内存分页?

是 MyBatis 提供的一种用于结果集分页的功能,主要通过内存分页的方式实现。它通过在查询时传递分页参数,限制返回的结果集的大小。RowBounds 并不依赖于数据库层的分页功能,而是通过 MyBatis 在内存中对结果集进行截取,从而实现分…

java开发中间件学习记录(持续更新中~)

1 Redis 2JVM 3 java基础底层 4Mysql 5 spring 6 微服务 7.......(持续更新) One:Redis篇 1:Redis 1.穿透 1.1缓存穿透 1.1.1布隆过滤器 1.2缓存击穿 2:击穿 1.3:缓存雪崩 1.4:双写一致 1.5.持久化(RDB,AOF) 1.6…

搭建内网文件服务器(FTP),以及实现内网Gitee

一、实现windows搭建FTP,实现文件共享和管理 具体步骤: 1.打开控制面板,搜索功能 2.打开这几个配置 3.打开IIS,添加FTP站点即可 二、实现内网Gitee 参考博客: Gitblit服务器搭建及Git使用-CSDN博客 jdk1.8.0的安…