我的编程空间,编程开发者的网络收藏夹
学习永远不晚

事务的隔离级别和传播级别有何区别

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

事务的隔离级别和传播级别有何区别

事务的隔离级别

事务的隔离级别源于事务ACID的I(Isolation),即多个事务同时操作同一实体时,其中一个事务的读写操作对其他事务及其自身的可见性影响程度。具体可以分为如下几个等级:

  • 读未提交
    某个事务未提交前,其修改的数据对其他事务可见,这种隔离级别最低,除了确保执行事务本身的原子性,对其他事务几乎无隔离,所以如果源事务回滚,其他事务就会出现脏读现象。

  • 读已提交
    一个事务针对数据的写操作,只有提交之后,其他事务才可见。这是相对靠谱的方案。也是很多数据库的默认隔离级别。读提交也存在两个主要的问题,第一种是,如果两个事务同时开启,其中一个事务第一次读取,和在另一个事务修改并提交后读取到的数据会不一致,也就是不可重复读;第二个问题是,容易引起死锁。

  • 可重复读
    一个事务针对数据的读操作一旦开始,其他事务不再可以进行写操作,相当于读锁。可重复读增加了数据的安全性,但是针对新增操作,依然存在幻读问题。

  • 串行化
    串行化是安全性最高的一种隔离界别,也是用的最少的一种隔离级别,事务串行化执行,吞吐量严重受限。

事务的传播级别

和事务的隔离级别不同,传播特性是指一个事务开启后,如果在事务内涉及到其他事务的调用,是沿用主事务,还是开启新事务,亦或是,不接受事务。

  • REQUIRED 如果存在一个事务,支持当前事务。如果没有则开启一个新的事务。
  • SUPPORTS 如果存在一个事务,支持当前事务。如果没有则按照非事务的执行。
  • MANDATORY 如果已经存在一个事务,支持当前事务。如果没有则抛出异常。
  • REQUIRES_NEW 总是开启一个新的事务。如果一个事务已经存在,则将这个存在的事务挂起。
  • NOT_SUPPORTED 总是按照非事务地执行,并挂起任何存在的事务。
  • NEVER 总是按照非事务方式执行,如果存在一个活动事务则抛出异常
  • NESTED 如果一个活动的事务存在,则运行在一个嵌套的事务中. 如果没有活动事务, 则按REQUIRED 属性执行。

NESTED传播级别时,如果外层事务不可回滚内存提交的事务。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

事务的隔离级别和传播级别有何区别

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Spring中的事务隔离级别和传播行为

这篇文章主要介绍了Spring中的事务隔离级别和传播行为,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-03-19

事务隔离性和隔离级别

隔离性是当多个用户并发访问数据库时,比如同时操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离事务的隔离级别有哪些?一、概念Read uncommitted(读未提交)Read Committed(读已提交)R
事务隔离性和隔离级别
2021-04-27

SQL级别事务隔离级别选择

SQL中的事务隔离级别是指多个事务同时运行时,各个事务之间的隔离程度。SQL标准定义了四个事务隔离级别,分别是READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ和SERIALIZABLE。READ
SQL级别事务隔离级别选择
2024-08-03

MySQL的事务隔离级别各个级别有何不同

在MySQL中,事务隔离级别共有四种,分别是READ UNCOMMITTED(读未提交)、READ COMMITTED(读已提交)、REPEATABLE READ(可重复读)、SERIALIZABLE(可串行化)。这些级别之间的不同主要体现
MySQL的事务隔离级别各个级别有何不同
2024-03-06

MySQL的事务隔离级别

目录数据库事务的四大特性⑴ 原子性(Atomicity)⑵ 一致性(Consistency)⑶ 隔离性(Isolation)⑷ 持久性(Durability)SQL的4种隔离级别Read Uncommitted(读取未提交内容)Read Committed(读
MySQL的事务隔离级别
2021-07-07

Spring中的事务隔离级别和传播行为是什么

这篇文章主要讲解了“Spring中的事务隔离级别和传播行为是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring中的事务隔离级别和传播行为是什么”吧!传播行为在SpringBoot
2023-07-05

MySQL 事务的隔离级别

1. 事务的ACID事务的ACID是指事务拥有的4个特性的首字母组合:atomicity(原子性), consistency(一致性), isolation(隔离性)和durability(持久性)。①atomicity(原子性):表示事务是一个不可分割的工作
MySQL 事务的隔离级别
2019-01-27

事务的 4 个隔离级别

一、事务的 4 个隔离级别未提交读(Read Uncommitted):事务可以读取未提交的数据,也称作脏读(Dirty Read)。一般很少使用。提交读(Read Committed):是大都是 DBMS (如:Oracle, SQLServer)默认事务隔
事务的 4 个隔离级别
2016-08-30

MySQL的事务隔离级别有那些

MySQL的事务隔离级别有那些?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。事务隔离级别事务并发执行遇到的问题脏写如果一个事务修改了另一个未提交事务修改过的数据,那就意味着发生
2023-06-14

Mariadb之事务隔离级别 - Linux

所谓原子性,就是事务中执行的语句要么全部执行,要么全部不执行,如果事务在中途发生错误,那么前面执行过的语句将会回滚到事务前;一致性指的是在执行事务之前和事务执行完成后的数据库状态是完整的;也就是说我们执行的语句都按照我们预想的结果执行了;隔离性指数据库允许多个
Mariadb之事务隔离级别 - Linux
2020-11-15

MySQL事务隔离级别详解

一、什么是事务? 事务是逻辑上的一组操作,要么全执行,要么全不执行。 事务最经典栗子也经常被拿出来的栗子就是银行转账了。比如小明要给小红转账1000元,这个转账会涉及到两个关键操作:将小明的余额减1000元,将小红的余额减1000元。万一这
2023-08-30

编程热搜

目录