当前位置: 首页 > news >正文

二十六、MySQL并发事务问题:脏读/不可重复读/幻读

1、事务的隔离级别

(1)隔离级别

Read uncommitted # 读,未提交

Read committed # 读,已提交

Repeatable Read(默认) # 可重复读

Serializable # 串读

(2)基础语法

set transaction isolation level 事务的隔离级别

 2、脏读

(1)脏读演示

·【1】将事务的隔离级别设置为“读,未提交”;

·【2】开启两个独立的事务;

·【3】在左边事务中,显示account表的所有数据;

·【4】在右边事务中,修改account表中数据(jom的money数据),此时右边表中的数据改动未提交

·【5】在左边事务中,再次显示account表中所有数据,可以看到,account表中数据出现变动,这是因为左边事务受到了右边事务的影响,导致数据出现了错误。

(2)避免脏读

        【1】将事务的隔离程度设置为“读,已提交”,再按照上述顺序执行【2】、【3】、【4】、【5】、【6】即可,发现并未出现脏读变化

 3、不可重复读

(1)不可重复读演示

·【1】将事务的隔离程度设置为“读,已提交”,开启左右两个事务;

·【2】左边事务查看account表中所有数据;

·【3】右边事务修改表中数据;

·【4】再次调用select,左边事务查看account表中所有数据;

·【5】提交右边事务数据;

·【6】再次调用select,左边事务查看account表中所有数据,发现两次account表中数据显示不一致

(2) 避免不可重复读

·【1】将左边事务隔离程度设置为“可重复读”,左右开启事务;

·【2】左边事务调用select语句,显示account表中所有数据;

·【3】右边事务修改account表中数据;

·【4】提交右边事务;

·【5】左边事务调用select语句,再次显示account表中所有数据,发现数据并未发生改变

4、幻读

(1)幻读演示

·【1】将事务的隔离级别设置为“可重复读”;

·【2】左右两边开启事务;

·【3】左边事务调用select函数,查看account表中id=3的行数据,发现account中并不存在id=3的行数据;

·【4】右边事务调用insert函数,给account表中田间id=3的行数据;

·【5】左边事务再次调用insert函数,给account添加id=3的行数据,MySQL会提示错误“id=3已被占用”;

·【6】在左边事务调用select函数,查看id=3的行数据,发现id=3的行数据并不存在

(2) 避免幻读

        【1】将事务的隔离级别设置为串读,其余再如上执行即可。

 

相关文章:

二十六、MySQL并发事务问题:脏读/不可重复读/幻读

1、事务的隔离级别 (1)隔离级别 Read uncommitted # 读,未提交 Read committed # 读,已提交 Repeatable Read(默认) # 可重复读 Serializable # 串读 (2)基础语法 set transaction isolation level 事…...

RK3588平台开发系列讲解(项目篇)视频监控之RTMP推流

文章目录 一、RTMP协议是什么二、RTMP 的原理三、Nginx 流媒体服务器四、FFmpeg 推流沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 目前常见的视频监控和视频直播都是使用了 RTMP、RTSP、HLS、MPEG-DASH、WebRTC流媒体传输协议等。 视频监控项目组成,分为三部分:…...

http基础教程(超详细)

HTTP HTTP 一 、基础概念 请求和响应报文URL 二、HTTP 方法 GETHEADPOSTPUTPATCHDELETEOPTIONSCONNECTTRACE 三、HTTP 状态码 1XX 信息2XX 成功3XX 重定向4XX 客户端错误5XX 服务器错误 四、HTTP 首部 通用首部字段请求首部字段响应首部字段实体首部字段 五、具体应用 连接管理…...

Vue3 <script setup> 单文件组件 组合式 API 相关语法

1.vue3使用vuex <script setup> import {ref} from "vue" import {useStore} from "vuex"//获取store const storeuseStore(); const count ref(0); //获取store状态 const type store.state.type //给count赋值 count.value1;</script>2.vue…...

为什么说网络安全是IT行业最后的红利?是风口行业?

前言 “没有网络安全就没有国家安全”。当前&#xff0c;网络安全已被提升到国家战略的高度&#xff0c;成为影响国家安全、社会稳定至关重要的因素之一。 网络安全行业特点 1、就业薪资非常高&#xff0c;涨薪快 2021年猎聘网发布网络安全行业就业薪资行业最高人均33.77万…...

DD5 进制转换

目录 一、题目 二、分析 三、代码 一、题目 进制转换_牛客题霸_牛客网 二、分析 三、代码 #include <iostream> #include <vector> #include <string> using namespace std; string Greater_than_Ten(int digit)//余数大于等于10的时候转换成对应的字母…...

操作系统权限提升(二十七)之数据库提权-MySQL MOF提权

MySQL MOF提权 MOF介绍 mof是windows系统的一个“托管对象格式”文件(位置:C:/windows/system32/wbem/mof/),其作用是每隔五秒就会去监控进程创建和死亡,mof目录下有两个文件夹(good与bad)。Windows server 2003及以下系统每5秒会执行一次mof目录下的文件,执行成功会…...

springcloud:四、nacos介绍+启动+服务分级存储模型/集群+NacosRule负载均衡

nacos介绍 nacos是阿里巴巴提供的SpringCloud的一个组件&#xff0c;算是eureka的替代品。 nacos启动 安装过程这里不再赘述&#xff0c;相关安装或启动的问题可以见我的另一篇博客&#xff1a; http://t.csdn.cn/tcQ76 单价模式启动命令&#xff1a;进入bin目录&#xff0…...

人生第一个java项目 学生管理系统

开始编程 建类 开始主要部分 main()部分 方法部分...

Oracle统计信息手动收集与修改

Oracle统计信息手动收集与修改 检查统计信息收集统计信息Schema统计信息收集表统计信息收集 修改统计信息锁定统计信息 检查统计信息 查看表统计信息是否过期&#xff1a; select owner,table_name,partition_name from dba_tab_statistics where STATTYPE_LOCKED is null a…...

鸿鹄工程项目管理系统 Spring Cloud+Spring Boot+Mybatis+Vue+ElementUI+前后端分离构建工程项目管理系统

. 项目背景 一、随着公司的快速发展&#xff0c;企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性&#xff0c;公司对内部工程管理的提升提出了更高的要求。 二、企业通过数字化转型&#xff0c;不仅有利于优化业务流程、提升经营管…...

ubuntu安装freeswitch 1.10.10

1、安装ffmpeg4.2 1.1、安装依赖库 sudo apt install yasm libogg-dev pkg-config libopus-dev libvpx-dev libx264-dev libx265-dev libfdk-aac-dev libsdl2-dev libfdk-aac-dev libmp3lame-dev libopencore-amrwb-dev libopencore-amrnb-dev libvorbis-dev libxvidcore-dev…...

什么类型的企业适合应用RPA?

在如今快速发展的商业环境中&#xff0c;企业不断面临挑战和机会。数字化转型不仅是一个选项&#xff0c;而是一个必要条件&#xff0c;尤其对于具有特定需求和挑战的企业来说。但究竟哪些类型的企业最适合通过RPA&#xff08;Robotic Process Automation&#xff09;进行数字化…...

LuatOS-SOC接口文档(air780E)-- fdb - kv数据库,掉电不丢数据

fdb.kvdb_init(name, partition) 初始化kv数据库 参数 传入值类型 解释 string 数据库名,当前仅支持env string FAL分区名,当前仅支持onchip_fdb 返回值 返回值类型 解释 boolean 成功返回true,否则返回false 例子 -- fdb库基于 flashdb , 再次表示感谢. if fdb…...

世界500强都摒弃使用FTP的真实原因

FTP是一种最早的文件传输协议&#xff0c;它在互联网上广泛使用&#xff0c;但是它也存在很多缺点和风险&#xff0c;导致许多世界500强企业都摒弃了使用FTP。本文将从以下几个方面来分析FTP的不足&#xff0c;以及世界500强企业的选择和替代方案。 FTP的缺点和风险 在安全性方…...

医院电子病历编辑器,EMRE(EMR Editor)源码

电子病历主要面向医院机构医生、护士&#xff0c;提供对住院病人的电子病历书写、保存、修改、打印等功能。本系统基于云端SaaS服务方式&#xff0c;通过浏览器方式访问和使用系统功能&#xff0c;提供电子病历在线制作、管理和使用的一体化电子病历解决方案&#xff0c;为医疗…...

分享从零开始学习网络设备配置--任务3.8 使用动态路由OSPF实现网络连通

任务描述 某公司随着规模的不断扩大&#xff0c;路由器的数量在原有的基础上有所增加。网络管理员发现原有的路由协议已经不适合现有的网络环境&#xff0c;可实施动态路由OSPF协议配置&#xff0c;实现网络中所有主机之间互相通信。因为动态路由OSPF协议可以实现快速收敛&…...

构建高效的同城O2O外卖系统APP:技术要点和最佳实践

时下&#xff0c;消费者的需求不断演变&#xff0c;迫使外卖服务提供商不断改进其技术和服务。本文将讨论如何构建一个高效的同城O2O&#xff08;Online-to-Offline&#xff09;外卖系统APP&#xff0c;突出了关键的技术要点和最佳实践。 一、用户界面设计 1.1 直观 简单直观…...

【残差网络ResNet:残差块输入输出形状控制】

【残差网络ResNet&#xff1a;残差块输入输出形状控制】 1 残差块输入输出形状控制程序2 查看经典的ResNet18模型 1 残差块输入输出形状控制程序 参考链接&#xff1a;https://arxiv.org/pdf/1512.03385.pdf 这是一个基本的残差块&#xff0c;由两层卷积组成前向传播 一层卷积…...

【编译和链接——详解】

1. 翻译环境和运行环境&#x1f4bb; 在ANSI C的任何⼀种实现中&#xff0c;存在两个不同的环境。 第1种是翻译环境&#xff0c;在这个环境中源代码被转换为可执⾏的机器指令。 第2种是执⾏环境&#xff0c;它⽤于实际执⾏代码。 2. 翻译环境&#x1f4bb; 那翻译环境是怎么将…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于构建 API&#xff0c;支持 Python 3.6。它基于标准 Python 类型提示&#xff0c;易于学习且功能强大。以下是一个完整的 FastAPI 入门教程&#xff0c;涵盖从环境搭建到创建并运行一个简单的…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分&#xff1a; 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...

nnUNet V2修改网络——暴力替换网络为UNet++

更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...

消息队列系统设计与实践全解析

文章目录 &#x1f680; 消息队列系统设计与实践全解析&#x1f50d; 一、消息队列选型1.1 业务场景匹配矩阵1.2 吞吐量/延迟/可靠性权衡&#x1f4a1; 权衡决策框架 1.3 运维复杂度评估&#x1f527; 运维成本降低策略 &#x1f3d7;️ 二、典型架构设计2.1 分布式事务最终一致…...

沙箱虚拟化技术虚拟机容器之间的关系详解

问题 沙箱、虚拟化、容器三者分开一一介绍的话我知道他们各自都是什么东西&#xff0c;但是如果把三者放在一起&#xff0c;它们之间到底什么关系&#xff1f;又有什么联系呢&#xff1f;我不是很明白&#xff01;&#xff01;&#xff01; 就比如说&#xff1a; 沙箱&#…...

高防服务器价格高原因分析

高防服务器的价格较高&#xff0c;主要是由于其特殊的防御机制、硬件配置、运营维护等多方面的综合成本。以下从技术、资源和服务三个维度详细解析高防服务器昂贵的原因&#xff1a; 一、硬件与技术投入 大带宽需求 DDoS攻击通过占用大量带宽资源瘫痪目标服务器&#xff0c;因此…...

flow_controllers

关键点&#xff1a; 流控制器类型&#xff1a; 同步&#xff08;Sync&#xff09;&#xff1a;发布操作会阻塞&#xff0c;直到数据被确认发送。异步&#xff08;Async&#xff09;&#xff1a;发布操作非阻塞&#xff0c;数据发送由后台线程处理。纯同步&#xff08;PureSync…...