MySql -- 事务
目录
1.概念
2.事务的运用场景
3.事务的四大特点
4.执行事务带来的问题
4.1 脏读
4.2 不可重复度
4.3 幻读
5. MySQL中事务的隔离级别
1.概念
事务就是把若干个独立操作打包成一个整体而诞生的一种功能.
2.事务的运用场景
比如:A——>B 转账500
A的余额-500
update 账户表 set balance = balance-500 where name = "A";
B的余额+500
update 账户表 set balance = balance+500 where name= "B";
在执行这个转账操作时,可能会出现一个问题:当A转出去500时,B还没有接收到,但是机器崩了。显然这种状态不科学,但是利用 事务的原子性 可以解决这个问题.
3.事务的四大特点
1.原子性 保证为一个整体,不可再分割.
2.一致性 在事务执行前后,数据库中的数据都得是合法的。例如:转账完成后,不能够出现账户为负数的这种情况
3.持久性 事务一旦提交后,就持久化存储起来了,数据就存储在硬盘当中了。
4.隔离性 为了解决并发执行事务引起的问题(下面会单独介绍)
4.执行事务带来的问题
4.1 脏读
举例:
有一天,当老师在写代码的时候,有位同学在老师的身边的走过,然后喵了一眼老师的电脑屏幕,看到了代码中的一些内容,然后就走了,等到上课的时候,这位同学回忆自己曾经看到的代码积极回答问题,但是老师说他回答的错误,这位同学心里就想,自己明明在老师看到了这道题的代码为什么会错.原因是老师当时把代码写错了.正好让自己给看到了,等这位学生走后,老师检查出了错误并改正.
定义:
一个事物A正在对数据进行修改,在还没有提交志气啊,另外一个事物B也对同一个数据进行了读取,此时B的读取操作就被称为"脏读",阅读到的数据也被成为"脏数据".
解决方法:
为了解决脏读的问题,MySQL引进了"写操作加锁"的机制.也就是在写代码的过程中,谁也不许看我写的代码.只能等我写完代码,才能进行阅读.
但是,此时写操作和读操作无法并发执行了.,这就降低了并发程度,但是提高了数据隔离性(数据的准确性)
4.2 不可重复度
举例:
还是在这一天,老师和同学们约定好,大家都不要看我的代码,等老师讲代码传入到码云上大家再进行阅读.(这就给写进行加锁操作)
但是,这一天老师上传了码云版本1的代码,同学们正在积极的阅读中,此时唰的一下,代码发生了改变,同学们老师原因,原来在同学们阅读代码的时候,老师将自己版本2的代码上传到了码云,使得代码发生了改变.这个过程就发生了,不可重复读.
定义:
事务1已经提交了数据,此时事务2开始读取数据,在读取的过程中,事务3又提交了新的数据.此时意味着同一个事物2之内,多次读出来的数据是不一样的.
解决方法:
为了解决这个问题,引进了"给读加锁"的机制,也就是在同学们进行阅读的时候,老师不可以再上传代码,
通过给读加锁这个机制,又进一步降低了事务并发处理能力,提高了事务的隔离性(数据的准确性又得到了提高).
4.3 幻读
举例:
当前约定好读操作和写操作进行加锁,解决了脏读和不可重复读的问题.
由于约定了读加锁,同学读的时候,老师不能进行修改代码了,只能干等着,所以老师想了一个办法,同学们读Java1文件的时候,老师修改Java2文件,但是个别情况下,有的学生不能接受,因为一开始没有Java2文件,突然冒出来一个Java2文件,无法接收.
定义:
在读操作和写操作加锁的情况下,一个事物读取同一个数据,得到的数据值是一样的,但是结果集不一样.这就称为幻读.
解决方法:
数据库使用"串行化"这样的方式来解决幻读,彻底放弃并发处理事务,一个接一个的串行的处理事务.
这样做,并发程度是最低的但是隔离性确实最高的,数据也是最准确的.
5. MySQL中事务的隔离级别

相关文章:
MySql -- 事务
目录 1.概念 2.事务的运用场景 3.事务的四大特点 4.执行事务带来的问题 4.1 脏读 4.2 不可重复度 4.3 幻读 5. MySQL中事务的隔离级别 1.概念 事务就是把若干个独立操作打包成一个整体而诞生的一种功能. 2.事务的运用场景 比如:A——>B 转账500 A的余额-500…...
关于大模型对未来影响的一点看法
人们总是高估了未来一到两年的变化,低估了未来十年的变革。 ---比尔盖茨 近来OpenAI的GPT技术可以说在全球都带来了巨大的影响,也让大家看到了什么叫大力出奇迹。chatGPT和GPT4的能力给了大家很大的震撼,其流畅自如、逻辑清晰、出众的能力&am…...
Android - 约束布局 ConstraintLayout
一、概念 解决布局嵌套过多的问题,采用方向约束的方式对控件进行定位。 二、位置约束 2.1 位置 至少要保证水平和垂直方向都至少有一个约束才能确定控件的位置。 layout_constraintLeft_toLeftOf我的左边,与XXX左边对齐。layout_constraintLeft_toRight…...
Addictive Multiplicative in NN
特征交叉是特征工程中的重要环节,在以表格型(或结构化)数据为输入的建模中起到了很关键的作用。 特征交互的作用,一是尽可能挖掘对目标有效的模式、特征,二是具有较好的可解释性,三是能够将对数据的洞见引…...
LeetCode 1206. 实现跳表
不使用任何库函数,设计一个跳表。 跳表是在 O(log(n)) 时间内完成增加、删除、搜索操作的数据结构。跳表相比于树堆与红黑树,其功能与性能相当,并且跳表的代码长度相较下更短,其设计思想与链表相似。 例如,一个跳表包…...
离散数学_九章:关系(2)
9.2 n元关系及其应用 1、n元关系,关系的域,关系的阶2、数据库和关系 1. 数据库 2. 主键 3. 复合主键 3、n元关系的运算 1. 选择运算 (Select) 2. 投影运算 (Project) 3. 连接运算 (Join) n元关系:两个以上集合的元素间的关系 1、n元关系…...
[ubuntu][原创]通过apt方式去安装libnccl库
ubuntu18.04版本安装流程: wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600 sudo apt-key adv --fetch-keys https://develo…...
YonLinker连接集成平台构建新一代产业互联根基
近日,由用友公司主办的“2023用友BIP技术大会“在用友产业园(北京)盛大召开,用友介绍了更懂企业业务的用友BIP-iuap平台,并发布了全面数智化能力体系,助力企业升级数智化底座,加强加速数智化推进…...
泛型的详解
泛型的理解和好处 首先我们先来看看泛型的好处 1)编译时,检查添加元素的类型,提高了安全性 2)减少了类型转换的次数,提高效率[说明] 不使用泛型 Dog -> Object -> Dog//放入到ArrayList 会先转成Object,在取出时&#x…...
用科技创造未来!流辰信息技术助您实现高效办公
随着社会的迅猛发展,科技的力量无处不见。它正在悄悄地改变整个社会,让人类变得进步和文明,让生活变得便捷和高效。在办公自动化强劲发展的今天,流辰信息技术让通信业、电网、汽车、物流等领域的企业实现了高效办公,数…...
基于R语言APSIM模型
随着数字农业和智慧农业的发展,基于过程的农业生产系统模型在模拟作物对气候变化的响应与适应、农田管理优化、作物品种和株型筛选、农田固碳和温室气体排放等领域扮演着越来越重要的作用。 APSIM (Agricultural Production Systems sIMulator)模型是世界知名的作物…...
块状链表实现BigString大字符串操作(golang)
前言 块状链表是介于链表和数组之间的数据结构,能够在 O ( n ) O(\sqrt{n}) O(n )时间内完成插入、删除、访问操作。 数据结构如图所示。假设最大容量为 n n n, 则它有一个长度为 s n s\sqrt{n} sn 的链表。链表中每个结点是一个长度为 2 n 2 \times \sqrt{…...
项目问题记录(持续更新)
1.在 yarn install的时候报 error achrinza/node-ipc9.2.2: The engine "node" is incompatible with this module. Expected version "8 || 10 || 12 || 14 || 16 || 17". Got "20.1.0" error Found incompatible module.需要执行 yarn config…...
Linux的进程
目录 一、进程占用的内存资源 二、进程的系统环境 三、进程一直在切换 四、父进程和子进程 五、进程状态 六、查看进程 1.ps -ef 列出所有进程 2.ps -lax 列出所有进程 3.ps aux列出所有进程 4.树形列出所有进程 七、作业(用来查看管理进程) …...
与其焦虑被 AI 取代或猜测前端是否已死, 不如看看 vertical-align 扎实你的基础!!!
与其焦虑被 AI 取代或猜测前端是否已死, 不如看看 vertical-align 扎实你的基础!!! vertical-align 设置 display 值为 inline, inline-block 和 table-cell 的元素竖直对齐方式. 从 line-height: normal 究竟是多高说起 我们先来看一段代码, 分析一下为什么第二行的行高, 也就…...
路由、交换机、集线器、DNS服务器、广域网/局域网、端口、MTU
前言:网络名词术语解析(自行阅读扫盲),推荐大家去读户根勤的《网络是怎样连接的》 路由(route): 数据包从源地址到目的地址所经过的路径,由一系列路由节点组成。某个路由节点为数据包选择投递方向的选路过程。 路由器工作原理 路…...
在全志V851S开发板上进行屏幕触摸适配
1.修改屏幕驱动 从ft6236 (删掉,不要保留),改为下面的 路径:/home/wells/tina-v853-open/tina-v853-open/device/config/chips/v851s/configs/lizard/board.dts(注意路径,要设置为自己的实际路…...
字符串拷贝时的内存重叠问题
字符串拷贝时的内存重叠问题 1.什么是内存重叠 拷贝的目的地址在源地址的范围内,有重叠。 如在写程序的过程中,我们用到的strcpy这个拷贝函数,在这个函数中我们定义一个目的地址,一个源地址,在拷贝的过程中如果内存重…...
告别PPT手残党!这6款AI神器,让你秒变PPT王者!
如果你是一个PPT手残党,每每制作PPT总是让你焦头烂额,那么你一定需要这篇幽默拉风的推广文案! 我向你保证,这篇文案将帮助你发现6款AI自动生成PPT的神器,让你告别PPT手残党的身份,成为一名PPT王者。 无论…...
JVM配置与优化
参考: JVM内存分区及作用(JDK8) https://blog.csdn.net/BigBug_500/article/details/104734957 java 进程占用系统内存过高分析 https://blog.csdn.net/fxh13579/article/details/104754340 Java之jvm和线程的内存 https://blog.csdn.ne…...
PLM系统在环保合规设计中的关键作用与实施路径
1. 环保合规设计的行业挑战与PLM解决方案价值在电子产品和汽车制造业,材料合规管理已成为产品设计的核心环节。过去五年间,全球新增了47项与有害物质管控相关的法规,其中中国RoHS 2.0和欧盟REACH法规的更新频率达到每年2-3次。某国际汽车零部…...
Prompt即API:将智能代码生成接入CI/CD流水线的4层抽象架构(含OpenAPI Schema定义与验证工具链)
第一章:Prompt即API:将智能代码生成接入CI/CD流水线的4层抽象架构(含OpenAPI Schema定义与验证工具链) 2026奇点智能技术大会(https://ml-summit.org) 当提示词(Prompt)被赋予结构化契约、可验证输入输出…...
不只是创建工具坐标:用RobotStudio自定义工具完成一个真实的涂胶轨迹编程
不只是创建工具坐标:用RobotStudio自定义工具完成真实的涂胶轨迹编程 在工业机器人应用领域,工具坐标系的创建从来都不是终点,而是工艺实现的起点。当我们面对一把非标设计的涂胶枪时,如何让它从冰冷的3D模型变成机器人手中灵活的…...
无需多软件切换, 实现文档、表格、协作工具一体化
前言 每天在办公室里处理各种文件,打开 Word 写文档、切到 Excel 做表格、再开一个窗口做 PPT,中间还要穿插着局域网聊天、思维导图整理思路,白板讨论完还要手动整理纪要。一台电脑屏幕上开满了窗口,任务栏挤得密密麻麻ÿ…...
从自动驾驶到AI医生:拆解5个真实案例,看多模态融合如何解决行业难题
从自动驾驶到AI医生:拆解5个真实案例,看多模态融合如何解决行业难题 当一辆自动驾驶汽车在暴雨中行驶时,摄像头被雨水模糊,激光雷达却依然能清晰识别障碍物;当医生面对复杂的肺部CT影像时,结合患者的电子病…...
TC397以太网开发实战:从零配置GETH模块到RGMII引脚调试全流程
TC397以太网开发实战:从零配置GETH模块到RGMII引脚调试全流程 1. 开发环境搭建与硬件准备 在开始TC397的以太网功能开发前,需要做好以下准备工作: 硬件清单: KIT-A2G-TC397-5V-TFT开发板RTL8211F PHY芯片评估板(或兼容…...
微软新 Xbox 负责人阿莎·夏尔马忙不停:Game Pass 定价待调,“螺旋计划”影响几何?
承诺“Xbox 回归”后,负责人忙不停微软新任 Xbox 负责人承诺“Xbox 回归”后,一直忙得不可开交。阿莎夏尔马在 3 月游戏开发者大会上与发行商会面,最近几周走访微软旗下游戏工作室和产品团队。曾在微软 CoreAI 部门工作的她目前处于学习阶段&…...
高效日志分析解决方案:glogg 专业日志查看器的企业级应用指南
高效日志分析解决方案:glogg 专业日志查看器的企业级应用指南 【免费下载链接】glogg A fast, advanced log explorer. 项目地址: https://gitcode.com/gh_mirrors/gl/glogg 在复杂的分布式系统和微服务架构中,海量日志数据的实时分析与检索已成为…...
如何用Bebas Neue开源字体打造专业级标题设计:5大优势与完整应用指南
如何用Bebas Neue开源字体打造专业级标题设计:5大优势与完整应用指南 【免费下载链接】Bebas-Neue Bebas Neue font 项目地址: https://gitcode.com/gh_mirrors/be/Bebas-Neue 在当今数字设计领域,找到一款既能免费使用又具备专业水准的标题字体是…...
从样本到洞见:宏基因组数据分析全流程实战指南
1. 宏基因组数据分析入门:为什么你需要这份指南 第一次接触宏基因组数据分析的研究者,往往会陷入"数据海洋恐惧症"——面对数十GB的FASTQ文件,不知道该从哪里下手。我至今记得五年前处理第一个土壤样本时的场景:在服务器…...
