MYSQL三个日志

  • undo log(回滚日志):是 Innodb 存储引擎层生成的日志,实现了事务中的原子性,主要用于事务回滚和 MVCC

  • redo log(重做日志):是 Innodb 存储引擎层生成的日志,实现了事务中的持久性,主要用于掉电等故障恢复

  • binlog(归档日志):是 Server 层生成的日志,主要用于数据备份和主从复制

为什么需要 undo log?

当你执行 "增删改" sql语句时,不需要手动的begin和commit事务,MYSQL会 隐式 的开启事务来执行 "增删改",执行成功结束后,会自动提交事务。(autocommit,默认为true)

undo log(回滚日志),它保证了事务的 ACID 特性 (opens new window)中的原子性(Atomicity)

在进行增删改时,会把一些内容记录到undo log里,比如:

  • 执行增语句时,会将 键值 存储到undo log中,回滚就根据主键值删掉记录就好了。

  • 执行删语句时,会将 内容 保存到undo log中,回滚就将内容添加回去就好了。

  • 执行改语句时,会将 旧值 保存到undo log中,回滚就把记录更新为旧值就好了。

一条记录的每一次更新操作产生的 undo log 格式都有一个 roll_pointer 指针和一个 trx_id 事务id:

  • 通过 trx_id 可以知道该记录是被哪个事务修改的;

  • 通过 roll_pointer 指针可以将这些 undo log 串成一个链表,这个链表就被称为版本链;

另外,undo log 还有一个作用,通过 ReadView + undo log 实现 MVCC(多版本并发控制)

对于 读已提交 和 可重复读 隔离级别。对于普通的select的语句是通过MVCC来实现,它们的区别在于创建 ReadView 的时机不同:

  • 读已提交:每个select都会生成一个ReadView,当一个事务执行过程中,另外一个事务在第一个事务过程中提交了,然后第一个事务又执行一个select语句,这时会生成一个ReadView

  • 可重复读:事务开启时,第一个select语句创建一个ReadView,这个事务的操作自始自终都用的这个ReadView。

undo log 两大作用:

  • 实现事务回滚,保障事务的原子性

  • 实现 MVCC(多版本并发控制)关键因素之一

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/6194.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux的Shell脚本详解

本文目录 一、什么是 Shell 脚本文件 ?二、编写Shell脚本1. 基本规则2. shell 变量(1)创建变量(2)引用变量(3)删除变量(4)从键盘读取变量(5)特殊变…

Vulnhub-DIGITALWORLD.LOCAL: VENGEANCE渗透

文章目录 前言1、靶机ip配置2、渗透目标3、渗透概括 开始实战一、信息获取二、smb下载线索三、制作字典四、爆破压缩包密码五、线索分析六、提权!!! Vulnhub靶机:DIGITALWORLD.LOCAL: VENGEANCE ( digitalworld.local: VENGEANCE …

【linux】初步认识文件系统

初步认识文件系统 前置知识的简单了解简单回顾C语言的文件操作stdin&stdout&stderr 系统文件IOopen函数的返回值文件描述符fd打开文件背后的操作文件描述符的分配规则 前置知识的简单了解 文件包括了文件内容和文件属性两个部分(文件内容顾名思义就是文件里面的数据等…

算法===二分查找

文章目录 概要定义代码Python小结 概要 二分,很常用,不管是日常生活,还是工作,学习;哪怕是使用计算机查下哪块占了硬盘空间,都用的上。 二分,太常用了。比如,我的电脑某一个盘慢了&…

tomcat启动闪退问题解决方法

文章目录 Tomcat启动闪退的常见问题及解决方法Tomcat是什么启动闪退的常见问题及解决方法1. 内存不足问题描述:案例分析:解决方法: 2. 端口冲突问题描述:解决方法: 3. 日志错误问题描述:解决方法&#xff1…

冰蓄冷系统基础知识

冰蓄冷是将水制成冰储存冷量,它是潜热蓄冷的一种方式。当压力保持不变时,物质在相变过程中保持恒定温度并吸收或释放热量,通常把这个温度称为相变温度(即溶解温度或凝固温度),把吸收或释放的热量称相变潜热。在常压下,…

基于Python的LSTM网络实现单特征预测回归任务(TensorFlow)

目录 一、数据集 二、任务目标 三、代码实现 1、从本地路径中读取数据文件 2、数据归一化 3、创建配置类,将LSTM的各个超参数声明为变量,便于后续使用 4、创建时间序列数据 5、划分数据集 6、定义LSTM网络 (1)创建顺序模…

一、初识VUE

一、初识VUE 二、再识VUE-MVVM 三、VUE数据代理 Vue Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手&#xff0c…

MySQL常见问题解决和自动化安装脚本

常见问题 MySQL密码正确但无法登录的情况 这种情况一般都是因为缓存,使用mysql -u root -p123456直到成功登陆为止,并且进入之后重新修改密码,多次重复修改密码的命令并且再一次清除缓存后退出。 ALTER USER rootlocalhost IDENTIFIED WIT…

JRE与JDK:内在关联与核心区别探析

标题:JRE与JDK:内在关联与核心区别探析 引言 在软件开发领域,Java以其独特的跨平台特性和丰富的开源生态赢得了广泛的赞誉和应用。而在Java技术栈中,Java Runtime Environment (JRE) 和 Java Development Kit (JDK) 是两个不可或…

C++之operator

1、operator operator是C关键字之一, 称为重载运算符(也称“重载操作符”)。所谓重载,就是赋予新的含义。函数重载(Function Overloading)可以让一个函数名有多种功能,在不同情况下进行不同的操作。运算符重…

基于Unity+Vue通信交互的WebGL项目实践

unity-webgl 是无法直接向vue项目进行通信的,需要一个中间者 jslib 文件 jslib当作中间者,unity与它通信,前端也与它通信,在此基础上三者之间进行了通信对接 看过很多例子:介绍的都不是很详细,不如自己写&…

【MATLAB源码-第199期】基于MATLAB的深度学习(CNN)数字、模拟调制识别仿真,输出识别率。

操作环境: MATLAB 2022a 1、算法描述 基于深度学习的调制识别系统利用复杂的数学模型和算法来识别和分类从不同来源接收到的无线信号的调制类型。这种技术的应用广泛,特别是在无线通信、电子战、频谱监测和认知无线电等领域中具有重要价值。调制识别系…

算法导论 总结索引 | 第三部分 第十二章:二叉搜索树

1、搜索树数据结构 支持 许多动态集合操作,包括 SEARCH、MINIMUM、MAXIMUM、PREDECESSOR、SUCCESSOR、INSERT 和 DELETE 等。使用搜索树 既可以作为一个字典 又可以作为一个优先队列 2、二叉搜索树上的基本操作 所花费的时间 与这棵树的高度成正比。对于有n个结点的…

汽车热辐射、热传导、热对流模拟加速老化太阳光模拟器系统

汽车整车结构复杂,材料种类繁多,在使用过程中会面临各种严酷气候环境的考验,不可避免会出现零部件材料老化、腐蚀等不良现象,从而影响汽车的外观、功能,甚至产生安全隐患。因此,分析汽车零部件材料老化腐蚀…

深入剖析Tomcat(五) 剖析Servlet容器并实现一个简易Context与Wrapper容器

上一章介绍了Tomcat的默认连接器,后续程序都会使用默认连接器。前面有讲过Catalina容器的两大块内容就是连接器与Servlet容器。不同于第二章的自定义丐版Servlet容器,这一章就来探讨下Catalina中的真正的Servlet容器究竟长啥样。 四种容器 在Catalina中…

音视频入门基础:像素格式专题(1)——RGB简介

一、像素格式简介 像素格式(pixel format)指像素色彩按分量的大小和排列。这种格式以每个像素所使用的总位数以及用于存储像素色彩的红、绿、蓝和 alpha 分量的位数指定。在音视频领域,常用的像素格式包括RGB格式和YUV格式,本文…

mysql添加远程登录账户

为了远程连接,您必须使MySQL将端口3306绑定到my.cnf中计算机的IP地址。然后,您必须同时在localhost和%通配符中创建用户,并在所有DB上授予权限。 修改my.cnf,如果不存在这行则添加,可以输入0.0.0.0 bind-ad…

Java面试题:并发编程中,什么是死锁,如何避免它?

什么是死锁? 死锁是指在多线程环境中,由于资源分配不当或进程运行顺序不合理,导致涉及的线程都处于等待状态,无法继续执行的一种状况。在Java中,死锁通常发生在多个线程互相等待对方持有的锁,但没有任何一…

【海博】雅思该怎么练?

文章目录 前言 备考计划 模拟考试 参考资料 前言 见《【海博】浅析海博深造》 见《【海博】雅思和托福该考哪个?》 见《【海博】雅思该怎么考?》 见《【海博】雅思考什么?》 备考计划 第一周确定你的目标考试分数。 做一套雅思模拟试题&…