【云原生进阶之数据库技术】第一章MySQL-架构原理-3.2.4 UndoLog工作原理

news/2024/7/4 7:59:46 标签: mysql, 数据库, paas, 云原生, redo

1 基本概念

  • undo log(回滚日志) :是 Innodb 存储引擎层生成的日志,实现了事务中的原子性,主要用于事务回滚和 MVCC。
  • redo log(重做日志) :是 Innodb 存储引擎层生成的日志,实现了事务中的持久性,主要用于掉电等故障恢复;
  • binlog (归档日志) :是 Server 层生成的日志,主要用于数据备份和主从复制;

        先来看一张sql执行逻辑图,这样对三种log的使用有更直观的认知:

        最后写入binLog文件,redo事务状态变更为commit

2 Undo Log

2.1 为什么需要 undo log?

        我们在执行执行一条“增删改”语句的时候,虽然没有输入 begin 开启事务和 commit 提交事务,但是 MySQL会隐式开启事务来执行“增删改”语句的,且执行完就会自动提交事务的,这样就保证了执行完“增删改”语句后,我们可以及时在数据库表看到“增删改”的结果了。执行一条语句是否自动提交事务,是由 autocommit


http://www.niftyadmin.cn/n/5414131.html

相关文章

程序员选择职业赛道2024

程序员如何选择职业赛道? 程序员的职业赛道就像是一座迷宫,有前端的美丽花园,后端的黑暗洞穴,还有数据科学的神秘密室。你准备好探索这个充满挑战和机遇的迷宫了吗?快来了解如何选择职业赛道吧! 方向一&a…

新版AndroidStudio的Gradle窗口显示task list not built 问题解决

在使用新版AndroidStudio时,会出现,Task List not built 的问题。如果你记得task的名字,当然可以 直接通过命令 gradle taskname 或者 ./gradlew taskName直接执行即可,但是若是记不住,还是把这个任务构建处理比较好用…

记一次用Arthas排查Redis连接数增加问题(附:查看bean)

有一次生产环境发包后,发现redis连接数变多了,由于改的代码比较多,不确定是哪里出了问题。因此用Arthas来进行了一次排查。 项目比较多,有用到 jedis、lettuce、redisson 3种客户端。 项目用到的 SpringContextHolder 代码如下&…

Rasberry Pi Pico(RP2040板) C_Cpp及Python微型机器学习

要点 Raspberry Pi Pico使用C/C和MicroPython开发环境设置,实现Python和C/C两种微型机器学习几何图形检测自定义和使用第三方库更改Pi Pico 为GPU功能;Rpi Pico实现月相显示;Rpi Pico直流电机驱动;RP2040板微型机器学习音频分类Rpi Pico 使用…

React 从0到1构建企业级框架基于Antd Designer

一、 create-react-app 创建 cms-front 二、 删除不必须要的文件形成如下结构 1. React版本为17版本 public 文件夹下保留 favicon.ico 偏爱图标index.html资源文件 2.src 保留 index.js 入口文件和app.js(基于spa原则)单文件即可 三、配置eslint 1. 安装 eslint. npm inst…

Jenkins中构建vue项目过程中vite进程被终止(kill),导致vue项目构建失败

jenkins的部分构建日志如下: [33mThe CJS build of Vites Node API is deprecated. See https://vitejs.dev/guide/troubleshooting.html#vite-cjs-node-api-deprecated for more details.[39m 16:37:44 [36mvite v5.0.5 [32mbuilding for production...[36m[39m …

mysql中两千万大表做时间范围查询很慢,怎么解决

预备知识 1、一个表的数据量达到好几千万或者上亿时,加索引的效果没那么明显啦。性能之所以会变差,是因为维护索引的B树结构层级变得更高了,查询一条数据时,需要经历的磁盘IO变多,因此查询性能变慢。 少量数据可以考…

算法界的瑞士军刀--动态规划

动态规划:算法界的瑞士军刀 动态规划(Dynamic Programming, DP)是一种算法设计技巧,它将复杂问题分解为更小的子问题,并存储这些子问题的解,以避免重复计算。这种方法在优化问题中尤其有效,比如…