(三十三)大白话MySQL运行时多个事务同时执行是什么场景?

news2025/7/28 5:11:41

到目前为止,我们已经给大家深入讲解了MySQL的buffer pool机制、redo log机制和undo log机制,相信大家现在对我们平时执行一些增删改语句的实现原理,都有了一定较为深入的理解了!

因为平时我们执行增删改的时候,无非就是从磁盘加载数据页到buffer pool的缓存页里去,对缓存页进行更新,同时记录下来undo log回滚日志和redo log重做日志,应对的是事务提交之后MySQL挂了恢复数据的场景,以及事务回滚的场景。

那么接下来其实我们要理解的东西,就是要提高一个层次了,我们要理解到事务这个层面了

所谓的事务呢,其实或多或少每个人都是知道一点的,我们今天只不过是站在MySQL内核原理的角度,拔高到事务的层面给大家回顾一下。

其实大家可以思考,平时我们是不是一般都是写一个业务系统,然后业务系统会去对数据库执行增删改查?如下图:

然后我们应该都知道一件事情,通常而言,我们都是在业务系统里会开启事务来执行增删改操作的,我随便给大家举个例子,下面的代码大家看看。

所以一般来说,业务系统是执行一个一个的事务,每个事务里可能是一个或者多个增删改查的SQL语句

这个事务的概念想必不用我多说了,其实就是一个事务里的SQL要不然一起成功就提交了,要不然有一个SQL失败,那么事务就回滚了,所有SQL做的修改都撤销了!我们看下图。

image-20230102180509522

接着问题来了,这个业务系统他可不是一个单线程系统啊!他是有很多线程的!

因为他面向的终端用户是有很多人的,可能会同时发起请求,所以他需要多个线程并发来处理多个请求的,

于是,这个业务系统很可能是基于多线程并发的对MySQL数据库去执行多个事务的!看下图。

那么每个事务里面的多个SQL语句都是如何执行的呢?

其实就是我们之前给大家讲过的那一套原理了,包括从磁盘加载数据页到buffer pool的缓存页里去,然后更新buffer pool里的缓存页,同时记录redo log和undo log,如下图所示。

image-20230102180529389

每个事务如果提交了,那么就皆大欢喜,这个提交的过程我之前最早就讲过了,他有一些步骤,包括在redo log里记录事务提交标识之类的。

如果事务提交之后,redo log刷入磁盘,结果MySQL宕机了,是可以根据redo log恢复事务修改过的缓存数据的。

如果要回滚事务,那么就基于undo log来回滚就可以了,把之前对缓存页做的修改都给回滚了就可以了。

这就是在MySQL内核层面,把多个事务和我们之前讲解的buffer pool、redo log、undo log几个机制都结合在一起的一个场景讲解。想必大家都是可以理解的。

但是这里就有很多问题了:

所以接下来,我们要给大家讲解的,就是解决多个事务并发运行的时候,同时写和同时读写的一些并发冲突的处理机制,包括了MySQL事务的隔离级别、MVCC多版本隔离、锁机制,等等。

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

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

相关文章

Python|Leetcode刷题日寄Part04

Python|Leetcode刷题日寄Part0401:环形链表02:跳跃游戏03:括号生成04:二分查找05:打家劫舍06:搜索旋转排序数组07:Z字形变换08:买卖股票的最佳时机Ⅱ09:最后一个单词的长…

国产蓝牙耳机300左右哪个牌子的好?三百左右蓝牙耳机推荐

现在的蓝牙耳机样式越来越五花八门,各种性能也越来越好。特别是国产蓝牙耳机,近几年的发展十分快速。那么,三百左右哪个牌子的国产蓝牙耳机好?接下来,我来给大家推荐几款三百左右的蓝牙耳机,一起来看看吧。…

Java加密算法:base64,MD5加密,对称加密,非对称加密

目录 Java:密码算法 1、base64加密方式 2、jdk原生api实现MD5 3、使用codec依赖实现MD5加密 4、SHA加密 5、MAC算法加密 6、对称加密 7、非对称加密 Java:密码算法 1、base64加密方式 public class demo {//设置编码格式private static final S…

搜索引擎的6个技巧

今天看了一期seo优化的视频,其中就有这么一篇关于百度搜索的几个小技巧,这里整理出来,分享给大家。不是标题党,真的99%的人都不知道这个6个小技巧。 搜索引擎一般都会有一些高级的搜索技巧,掌握这些技巧之后就可以过滤…

spring的启动过程(二) :springMvc的启动过程

在上一篇文章中,我们详解了spring的启动过程,这一篇介绍spring mvc的启动过程,那么spring和spring mvc有什么联系呢。 1.Spring和SpringMVC是父子容器关系。2.Spring整体框架的核心思想是容器,用来管理bean的生命周期,…

CAN总线开发一本全(3) - 微控制器集成的FlexCAN外设

CAN总线开发一本全(3) - 微控制器集成的FlexCAN外设 苏勇,2023年2月 文章目录CAN总线开发一本全(3) - 微控制器集成的FlexCAN外设引言硬件外设模块系统概要总线接口单元 - 寄存器清单数据结构 - 消息缓冲区MB初始化过…

taobao.top.oaid.merge( OAID订单合并 )

¥开放平台免费API必须用户授权 基于OAID(收件人ID, Open Addressee ID)做订单合并,确保相同收件人信息的订单合并到相同组。 公共参数 请求地址: HTTP地址 http://gw.api.taobao.com/router/rest 公共请求参数: 公共响应参数: 请…

win10环境下安装java开发环境安装java

一:环境介绍 安装系统版本:win10 java版本:java SE 17 二:下载Java安装包 官网下载Java安装包:Java Downloads | Oracle 中国 选择需要的Java版本进行下载,如果没有要选择的版本,可以选择最新…

称重传感器差分输入信号隔离转换直流放大变送器0-±10mV/0-±20mV转0-10V/4-20mA

主要特性DIN11 IPO 压力应变桥信号处理系列隔离放大器是一种将差分输入信号隔离放大、转换成按比例输出的直流信号导轨安装变送模块。产品广泛应用在电力、远程监控、仪器仪表、医疗设备、工业自控等行业。此系列模块内部嵌入了一个高效微功率的电源,向输入端和输出…

(二十九)大白话MySQL直接强行把redo log写入磁盘?

上一讲我们给大家说了一下redo log block这个概念,大家现在都知道平时我们执行完增删改之后,要写入磁盘的redo log,其实应该是先进入到redo log block这个数据结构里去的,然后再进入到磁盘文件里,如下图所示。 那么今天…

三、锁相关知识

文章目录锁的分类可重入锁、不可重入锁乐观锁、悲观锁公平锁、非公平锁互斥锁、共享锁深入synchronized类锁、对象锁synchronized的优化synchronized实现原理synchronized的锁升级重量锁底层ObjectMonitor深入ReentrantLockReentrantLock和synchronized的区别AQS概述加锁流程源…

Flink中遇到的问题

目录 1、提交flink 批处理任务时遇到的问题 2、flink定时任务,mysql连接超时问题 3、yarn 增加并行任务数量配置 4、flink checkpoint 恢复失败 5、flink程序在hadoop集群跑了一段时间莫名挂掉 1、提交flink 批处理任务时遇到的问题 问题描述: …

超详细树状数组讲解(+例题:动态求连续区间和)

树状数组的作用:快速的对数列的一段范围求和快速的修改数列的某一个数为什么要使用树状数组:大家从作用中看到快速求和的时候可能会想到为什么不使用前缀和只需要预处理一下就可以在O(1)的时间复杂度下实行对于数列的一段范围的和但是我们可以得到当我们…

记一次服务器入侵事件的应急响应

0x01 事件背景 8月某日,客户官网被黑,需在特定时间内完成整改。为避免客户业务受到影响,实验室相关人员第一时间展开本次攻击事件的应急处理。 0x02 事件分析 网站源码被篡改,攻击者一定获取到了权限,那么接下来的思…

Linux进程1 - 进程的相关概念

目录 1.进程的概念 2.并行和并发 3.PCB(进程控制块) 4.进程状态 1.进程的概念 程序:二进制文件,占用的磁盘空间进程:启动的程序所有的数据都在内存中需要占用更多的系统资源cpu,物理内存 2.并行和并发 并发----在…

Spring事物和事务的传播机制

事务的定义:将一组操作封装到一个执行单元,要么全部成功,要么全部失败。 一、Spring中事务的实现 Spring中事务的操作分为两类: 1.编程式事务(手动写代码操作事务) 2.声明式事务(利用注解自动…

2023财年Q4业绩继续下滑,ChatGPT能驱动英伟达重回巅峰吗?

近年来,全球科创风口不断变换,虚拟货币、元宇宙等轮番登场,不少企业匆忙上台又很快谢幕,但在此期间,有些企业扮演淘金潮中“卖水人”的角色,却也能够见证历史且屹立不倒。不过,这并不意味着其可…

CSS 美化网页元素【快速掌握知识点】

目录 一、为什么使用CSS 二、字体样式 三、文本样式 color属性 四、排版文本段落 五、文本修饰和垂直对齐 1、文本装饰 2、垂直对齐方式 六、文本阴影 七、超链接伪类 1、语法 2、示例 3、访问时,蓝色;访问后,紫色; …

详解八大排序算法

文章目录前言排序算法插入排序直接插入排序:希尔排序(缩小增量排序)选择排序直接选择排序堆排序交换排序冒泡排序快速排序hoare版本挖坑法前后指针版本快速排序的非递归快速排序总结归并排序归并排序的非递归实现:计数排序排序算法复杂度及稳定性分析总结前言 本篇…

复杂场景的接口测试

测试场景一:被测业务操作是由多个API调用协作完成 背景:一个单一的前端操作可能会触发后端一系列的API调用,此时API的测试用例就不再是简单的单个API调用,而是一系列API的调用 存在的情况:存在后一个API需要使用前一个…