mysql的事务及四种事务隔离级别

图形学常见概念小结 前言:本文记录《unity shader入门精要》和openGL相关学习过程中一些学习要点; 文章目录PBR流程渲染管线细分着色器的底层实现,应用原理常见的色调映射算法openGl和Direct X的区别PBR流程和URP渲染管线Camera loop(剔除)MVP矩阵变换光线追踪前向渲染和延迟渲染shader和材质的区别bloom原理后处理的理解高斯模糊实现原理图像处理中的边缘检测算子 PBR流程 小结:一套基于自然界微平面理论、能量守恒、菲涅尔反射、线性空间等的科学理论所实现的基于物理的渲染系统,包含一 阅读详情

1.什么是事务
MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本信息,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!

  • 在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。
  • 事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。
  • 事务用来管理 insert,update,delete 语句

一般来说,事务是必须满足4个条件(ACID):原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。

  • 原子性:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
  • 一致性:在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。
  • 隔离性:数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交(Read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(Serializable)。
  • 持久性:事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。

在 MySQL 命令行的默认设置下,事务都是自动提交的,即执行 SQL 语句后就会马上执行 COMMIT 操作。因此要显式地开启一个事务务须使用命令 BEGIN 或 START TRANSACTION,或者执行命令 SET AUTOCOMMIT=0,用来禁止使用当前会话的自动提交。

2.MYSQL 事务处理主要有两种方法:
(1)用 BEGIN, ROLLBACK, COMMIT来实现

  • BEGIN 开始一个事务
  • ROLLBACK 事务回滚
  • COMMIT 事务确认

(2)直接用 SET 来改变 MySQL 的自动提交模式:

  • SET AUTOCOMMIT=0 禁止自动提交
  • SET AUTOCOMMIT=1 开启自动提交

3.事务的并发问题

  • 脏读:事务A读取了事务B更新未提交的数据,那么A读取到的数据是脏数据

在这里插入图片描述

  • 不可重复读:事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次读取同一数据时,结果 不一致。

在这里插入图片描述

  • 幻读:系统管理员A将数据库中所有学生的成绩从具体分数改为ABCDE等级,但是系统管理员B就在这个时候插入了一条具体分数的记录,当系统管理员A改结束后发现还有一条记录没有改过来,就好像发生了幻觉一样,这就叫幻读。

在这里插入图片描述

4.什么是mysql的事务隔离级别
说到事务隔离级别,就要先谈到事务,因为隔离级别是基于事务而存在的。

5.隔离级别能解决什么问题
今天我们主要讲mysql的隔离性,隔离级别是为了解决脏读、不可重复读、幻读问题的,四个隔离级别分别为:

  • 读未提交(read uncommitted ):读未提交的缺陷:是在并发场景下,这种隔离级别没有解决任何问题,所以基本没什么人用;
  • 读已提交(read committed):已提交读的缺陷:虽然读已提交可以解决脏读问题,但是不能解决不可重复读的问题,但是它的效率高,所以oracle、sql Server等数据库的默认隔离级别就是读已提交;
  • 可重复读(repeatable read):可重复读的缺陷:可重复读虽然能保证事务的一致性,因为可重复读只能保证同一行数据的事务,也就是行锁,如果我插入的新的行记录,就无法保证一致性了,也就无法解决幻读的问题,
  • 可串行化(serializable):安全性最高的隔离界别,效率也最慢,这种隔离级别就相当于是表锁,每次修改数据时都会将整张表锁住,哎,那这不就是myisam了吗?没错,串行化就是和myisam一样了;串行化的隔离级别,在java中就和synchronized 关键字一样了;每次修改的时候只能有一个线程进行修改,其他线程只能在外面排队等着;那么多人排成串在那等,效率肯定是最慢的了;

在这里插入图片描述
6.查看MySQL的事务隔离级别的语句:select @@tx_isolation
(isolation:隔离的意思)
在这里插入图片描述
7.修改MySQL的事务隔离级别的语句:

set session transaction isolation level read uncommitted;

希望本文能帮助到你,有什么不对,欢迎指出,也麻烦动手点个赞。

《大明王朝1566》中,朝廷财政危机无法解决的根源分析 财政困局中的财富最终流向三重黑洞:​皇室挥霍​(如嘉靖炼丹修殿)、特权阶层贪腐​(严党年入百万两盐税)、制度性损耗​(宗室供养、低效官僚)。更深层的“钱”其实是被禁锢在道德化治理的牢笼中——当国家用“黄河长江皆可为用”的权术思维替代制度性改革时,财政危机便成为帝制王朝无法逃脱的宿命。 阅读详情

相关推荐

【提示学习代码】CoOp代码详读

CoOp是对CLIP的改进工作,主要是对prompt进行学习从而不用来手动设置prompt。自定义CLIP模型:上述两个模块结合而成的CLIP。文本编码器,接收文本的输入,并输出相应的编码表示。将图像和文本进行编码并计算它们之间的相似性。permute后变成了(4,2,3)Prompt学习器,用于学习生成提示。

weixin_51293984的博客 5816

mysql sql 事务写作_《MySQL数据库》MySQL事务详解

前言事务出现就是为了保证数据的准确性。事务介绍事务是必须满足4个条件(ACID)::原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。原子性:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback...

weixin_39976081的博客 254

Pixel 6 Pro刷Android 13变砖自救指南:fastboot全分区擦除与手动刷入教程

本文提供了一份详细的Pixel 6 Pro在Android 13升级过程中变砖后的自救指南。针对因super分区锁死或动态分区异常导致的无法启动问题,文章核心介绍了通过fastboot命令手动擦除关键分区并逐一刷入官方镜像的完整救砖流程,帮助用户实现系统重建与恢复。

weixin_29208327的博客 373

mysql存储引擎、事务与锁机制小结

存储引擎 数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。常用的存储引擎有:InnoDB、MyIsam、Memory、Archive 在mysql v5.1版本之前,默认的存储引擎为MyIsam,而在其之后则变为了InnoDB引擎...

清茶的博客 701

隐藏在WAV音频里的秘密:用Python脚本从‘噪音’CTF题中提取Flag

本文详细解析了如何利用Python脚本从WAV音频文件中提取隐藏的Flag信息,特别针对CTF比赛中的音频隐写技术。通过分析WAV文件结构、编写Python解析脚本,并解决字节序处理和异常值等实际问题,帮助读者掌握从‘噪音’中解码Flag的技巧。

weixin_30617737的博客 487

离线安装samba与配置(.tar方式安装)

个人记录

小道士写程序 7726

MySQL的事务

mysql事务

一个大数据的爱好者 1142

语音数据标注工具与平台

最近在做语音深度学习的项目,整理了一下语音数据标注工具和语音标注平台,供大家参考 语音标注工具–Praat Praat是目前已经成为比较流行也比较专业的语音处理的软件,可以进行语音数据标注、语音录制、语音合成、语音分析等等,具有免费、占用空间小、通用性强、可移植性好等特点 官网链接 http://www.fon.hum.uva.nl/praat/ 汉化版下载 http://www.hejingzo...

qq_21379593的博客 1万+

MySQL事务

从上边的描述中我们可以看出来,所谓的MVCC(Multi-Version Concurrency Control ,多版本并发控制)指的就是在使用READ COMMITTD、REPEATABLE READ这两种隔离级别的事务在执行普通的SELECT操作时访问记录的版本链的过程,这样子可以使不同事务的读-写、写-读操作并发执行,从而提升系统性能。

weixin_55229531的博客 5万+

【电容/电感】电路板会“滋滋”的响,我们称它为啸叫

一、啸叫的起源 大部分硬件工程师应该都遇到过,PCBA上电后出现“滋滋滋”的叫声,其声响或大或小,或时有时无,或深沉或刺耳,或变化无常者皆有。该现象我们称为“啸叫”,一般分为电感啸叫和电容啸叫。

云轩阁 6万+

2021-09-29 每天几个LCEDA小知识——如何交叉选择并阵列放置元器件

立创EDA专业版之交叉选择并阵列放置元器件????交叉选择????阵列放置 ????交叉选择 在原理图界面,先框选需要交叉选择的元器件对象,右键,选择交叉选择(如果熟练之后,直接选择元器件,快捷键Shift+X)。 完成上述操作之后,可以看到自动跳转到PCB绘图界面,并自动选定PCB中相关的元器件,接下来不要取消选择的状态,在相关元器件被选中的情况下,即可开展阵列放置,将这些元器件都放在一个区域,方便PCB画线前的布局工作。 ????阵列放置 在布局菜单栏中,选择分布,选择阵列分布, 在弹出的对话框

l64481000的博客 1465

DDL、DML和DCL的理解(1、总述)

1、DDL       1-1、DDL的概述                DDL(Data Definition Language 数据定义语言)用于操作对象和对象的属性,这种对象包括数据库本身,以及数据库对象,像:表、视图等等,DDL对这些对象和属性的管理和定义具体表现在Create、Drop和Alter上。特别注意:DDL操作的“对象”的概念,”对象“包括对象及对象的属性,而且对象最小也

张青山 3万+

0.1 ROCm rocr-libhsakmt实现深度剖析专栏介绍

本专栏深入解析AMD ROCm生态核心组件rocrruntime,从底层硬件交互到上层封装实现。重点剖析libhsakmt驱动层的七大核心模块设计,包括拓扑管理、队列调度、事件同步等关键机制;详解C++接口封装策略与工程实践,如资源管理、多线程优化等。通过"硬件-驱动-应用"全链路技术拆解,帮助开发者深入理解ROCm运行时机制,解决性能调优、调试等实际问题,为HPC/AI应用开发提供底层技术支撑。

图形/计算GPU的驱动与虚拟化技术分享园地 5981

MySQL 四种事务隔离级别详解介绍

参考文章:面试问烂的 MySQL 四种隔离级别,看完吊打面试官! 什么是事务 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。 事务的结束有两种,当事务中的所以步骤全部成功执行时,事务提交。如果其中一个步骤失败,将发生回滚操作,撤消撤消之前到事务开始时的所以操作。另外,这篇分布式事务不理解?一次给你讲清楚!推荐大家阅读。 事务的 ACID 事务具有四个特征:原子性( Ato

justlpf的专栏 2万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

MySQL的四种事务隔离级别

脏读 时间线 事务A 事务B 1 select age from user wehre id = 1;(查询结果:18) update user set age = 20 where id = 20 2 3 4 5 6 7

云丶言的博客 5340

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

【MySQL】MySQL的四种事务隔离级别

【MySQL】MySQL的四种事务隔离级别 本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB 一、事务的基本要素(ACID) ...

coco3600的博客 3856

列举MySQL的四种事务隔离级别

MySQL的四种事务隔离级别 本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB 一、事务的基本要素(ACID) 1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成...

u011277123的博客 1121

MySQL 的四种事务隔离级别

MySQL 的事务隔离级别主要用于控制不同事务之间的可见性,防止数据不一致问题。

qq_45638953的博客 1020

mysql的四种事务隔离级别

一、事务的四个特性 在介绍mysql的四种隔离级别之前,我们首先要对事务有一个基本的了解。 事务具有四个特征:原子性( Atomicity )、一致性( Consistency )、隔离性( Isolation )和持续性( Durability )。这四个特性简称为 ACID 特性。 (1)原子性。事务是数据库的逻辑工作单位,事务中包含的各操作要么都做,要么都不做 (2)一致性。事 务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。因此当数据库只包含成功事务提交的结果时,就说数据库处

weixin_48016395的博客 1万+

MySQL事务支持的四种隔离级别

MySQL提供四种事务隔离级别,平衡数据一致性与性能:READ UNCOMMITTED(可能脏读)、READ COMMITTED(避免脏读但存在不可重复读)、REPEATABLE READ(默认级别,通过MVCC和间隙锁避免脏读和不可重复读,基本解决幻读)、SERIALIZABLE(完全串行化)。MySQL的REPEATABLE READ采用多版本并发控制和Next-Key锁机制,比其他数据库更高效地处理幻读问题,适合大多数业务场景。开发者应根据业务需求选择,通常优先使用默认级别,仅在极端情况下才考虑SER

Made In SQL 1256

MySQL数据库事务的四种隔离级别

事务具有ACID属性,而事务的隔离级别可以不同程度的解决事务并发时可能产生的问题,可以根据不同业务逻辑需求,来选择不同的事务隔离等级,事务隔离等级越高,越能保证数据的一致性,但就更趋近于串行化,降低并发性能,导致效率变低。读未提交(RU)在这种隔离级别下,脏读、幻读、不可重复读都不能解决读已提交(RC)在这种隔离级别下,解决了脏读。可重复读(RR)在这种隔离级别下,解决了脏读、不可重复读。序列化/串行化(在这种隔离级别下,解决了脏读、幻读、不可重复读。

m0_73613990的博客 1474

MySQL InnoDB 四种事务隔离级别

InnoDB默认是可重复读的(REPEATABLE READ)修改全局默认的事务级别,在my.inf文件的[mysqld]节里类似如下设置该选项(不推荐)transaction-isolation = {READ-UNCOMMITTED | READ-COMMITTED | REPEATABLE-READ | SERIALIZABLE}改变单个会话或者所有新进连接的隔离级别(推荐使用)SET [SE

chengshiep的专栏 1万+

MySQL 四种事务隔离级别

Session A 插入数据但未提交,Session B 能读到 A 未提交的数据。四级隔离各不同,读未提交最放松;读已提交不脏读,可重复读防两读;想要无幻串行化,性能代价别小觑。

xiaolyuh的专栏 587
上一篇: 用mysql查询出的数据对电话号进行脱敏处理
下一篇: http请求的全过程
除了菜还是菜
博客等级 码龄7年 34粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值