Mysql学习之事务日志undolog深入剖析

Undo log

redo log 是事务持久性的保证,undo log是事务原子性的保证。在事务中更新数据前置操作其实是要先写入一个undo log

如何理解undo 日志?
事务需要保证原子性,也就是事务中的操作要么全部完成,要么什么也不做。但有时候事务执行到一半会出现一些情况,比如:
情况1:事务执行过程中可能遇到各种错误,比如服务器本身的错误操作系统的错误、甚至是突然断电导致的错误。
情况2:程序员可以在事务执行过程中手动输入ROLLBACK语句结束当前事务的执行。
以上情况出现,需要把数据改回原来的样子,这个过程称之为回滚,这样就可以造成一个假象:这个事务看起来什么都没做,所以符合原子性要求。
在这里插入图片描述
undo log会产生redo log,也就是undo log的产生会伴随着redo log的产生,这是因为undo log也需要持久性的保护。

Undo日志的作用
作用1:回滚数据
在这里插入图片描述
作用2: MVCC
在这里插入图片描述
undo的存储结构
在这里插入图片描述
undo页的重用
在这里插入图片描述
在这里插入图片描述
回滚段中的数据分类
在这里插入图片描述
undo的类型
在这里插入图片描述
undo log的生命周期
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
undo log是如何回滚的
在这里插入图片描述
undo log的删除
在这里插入图片描述
purge线程两个主要作用是:清理undo页和清楚page里面带有Delete_Bit标识的数据行。在InnoDB中,事务中的Delete操作实际上并不是真正的删除掉数据行,而是一种Delete Mark操作,在记录上标识Delete_Bit,而不删除记录,是一种假删除,只是做了一个标记,真正的删除工作需要后台purge线程去完成。

小结
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

kitti数据显示

画出track_id publish_utils.py中 def publish_3dbox(box3d_pub, corners_3d_velos, types, track_ids):marker_array MarkerArray()for i, corners_3d_velo in enumerate(corners_3d_velos):marker Marker()marker.header.frame_id FRAME_IDmarker.header.stamp rospy.T…

kubernetes的网络flannel与caclio

flannel网络 跨主机通信的一个解决方案是Flannel,由CoreOS推出,支持3种实现:UDP、VXLAN、host-gw udp模式:使用设备flannel.0进行封包解包,不是内核原生支持,上下文切换较大,性能非常差 vxlan模…

golang学习3,golang 项目中配置gin的web框架

1.go 初始化 mod文件 go mod init gin-ranking 2.gin的crm框架 go get -u github.com/gin-gonic/gin 3.go.mod爆红解决

五种多目标优化算法(MOFA、NSWOA、MOJS、MOAHA、MOPSO)性能对比(提供MATLAB代码)

一、5种多目标优化算法简介 多目标优化算法是用于解决具有多个目标函数的优化问题的一类算法。其求解流程通常包括以下几个步骤: 1. 定义问题:首先需要明确问题的目标函数和约束条件。多目标优化问题通常涉及多个目标函数,这些目标函数可能…

LeetCode刷题---从中序与后序遍历序列构造二叉树

解题思路: 首先还是定义哈希表将中序遍历的数插入进去,方便后序查阅 创建递归方法buildTreeNew(中序遍历数组,后序遍历数组,左或右子树在中序遍历数组中的起始和终止节点索引,左或右子树在后序遍历数组中的起始和终止节点索引) 后…

ThreadLocal从使用到实现原理与源码详解

ThreadLocal概述 ThreadLocal是多线程中对于解决线程安全的一个操作类,它会为每个线程都分配一个独立的线程副本从而解决了变量并发访问冲突的问题。ThreadLocal 同时实现了线程内的资源共享。 案例:使用JDBC操作数据库时,会将每一个线程的…

数据库系统概论(超详解!!!) 第一节 绪论

1.四个基本概念 1.数据(Data) 数据(Data)是数据库中存储的基本对象 数据的定义:描述事物的符号记录 数据的种类:数字、文字、图形、图像、音频、视频、学生的档案记录等 数据的含义称为数据的语义&…

第三百六十七回

文章目录 1. 概念介绍2. 方法与细节2.1 获取方法2.2 使用细节 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何获取当前系统语言"相关的内容,本章回中将介绍如何获取时间戳.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章…

HCIA-Datacom实验指导手册:5.1 实验一:FTP SFTP TFTP 基础配置实验

HCIA-Datacom实验指导手册:5.1 实验一:FTP 基础配置实验 一、实验介绍:二、实验拓扑:三、实验目的:四、配置步骤:步骤 1 设备基础配置步骤 2 在 Router 上配置 FTP 和SFTP服务器功能及参数步骤 3 配置本地 …

MySQL数据库基础(十五):PyMySQL使用介绍

文章目录 PyMySQL使用介绍 一、为什么要学习PyMySQL 二、安装PyMySQL模块 三、PyMySQL的使用 1、导入 pymysql 包 2、创建连接对象 3、获取游标对象 4、pymysql完成数据的查询操作 5、pymysql完成对数据的增删改 PyMySQL使用介绍 提前安装MySQL数据库(可以…

js里面有引用传递吗?

一:什么是引用传递 引用传递是相对于值传递的。那什么是值传递呢?值传递就是在传递过程中再复制一份,然后再赋值给变量,例如: let a 2; let b a;在这个代码中,let b a; 就是一个值传递,首先…

js中浏览器渲染原理

JavaScript(JS)是一种广泛使用的编程语言,特别是在Web开发中。在浏览器中,JS被用于实现动态网页效果、交互性和用户体验的提升。然而,要理解JS在浏览器中的工作原理,我们首先需要了解浏览器的渲染过程。 浏…

【回顾】蚂蚁链自研TEE技术全项通过国家金融科技认证中心认证

2022年3月,蚂蚁集团自研TEE技术(HyperEnclave)通过了北京国家金融科技认证中心认证,TEE功能(CA与TA交互、数据存储、加密解密算法等)、TEE安全(硬件安全、系统软件层安全等)47个项目…

【51单片机】红外遥控红外遥控电机调速(江科大)

1.红外遥控简介 红外遥控是利用红外光进行通信的设备,由红外LED将调制后的信号发出,由专用的红外接收头进行解调输出 通信方式:单工,异步 红外LED波长:940nm 通信协议标准:NEC标准 2.硬件电路 红外发送部分 IN高电平时,LED不亮,IN低电平时&…

这几个Python内置函数你都知道吗

divmod() divmod() 是一个 Python 内置函数,用于同时返回商和余数。它接受两个参数,第一个参数是被除数,第二个参数是除数,返回一个包含两个值的元组,第一个值是商,第二个值是余数。 示例用法如下&#…

Laravel03 路由到控制器与连接数据库

Laravel03 路由到控制器与连接数据库 1. 路由到控制器2. 连接数据库 1. 路由到控制器 如下图一些简单的逻辑处理可以放在web.php中,也就是路由的闭包函数里面。但是大的项目,我们肯定不能这么写。 为什么保证业务清晰好管理,都应该吧业务逻辑…

设计模式(三)建造者模式

相关文章设计模式系列 1.建造者模式简介 定义 建造者模式(builder),将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 简介 建造者模式(builder)是创建一个复杂对象的创建型…

全面介绍HTML的语法!轻松写出网页

文章目录 heading(标题)paragraph(段落)link(超链接)imagemap(映射)table(表格)list(列表)layout(分块)form(表单)更多输入:datalistautocompleteautofocusmultiplenovalidatepatternplaceholderrequired head(首部)titlebaselinkstylemetascriptnoscript iframe HTML&#xff…

【刷题】leetcode 1544.整理字符串

刷题 1544.整理字符串思路一(模拟栈速解版)思路二 (原地算法巧解版)思路三(C栈版) Thanks♪(・ω・)ノ谢谢阅读!!!下一篇文章见&#xff…

前端学习---- 前端HTML基本元素的介绍

一&#xff1a;显示相关的HTML基础知识 1. 推荐的前端编写工具 2. VScode的html速写规则&#xff08;从a标签开始再用&#xff09; ①、&#xff01;&#xff1a;代表生成html的基本框架元素 ②、html元素&#xff1a;直接书写html,不需要加<>,按回车会自动生成 ③、{}…