事务的隔离级别和传播级别有何区别
发表于:2024-11-27 作者:千家信息网编辑
千家信息网最后更新 2024年11月27日,事务的隔离级别事务的隔离级别源于事务ACID的I(Isolation),即多个事务同时操作同一实体时,其中一个事务的读写操作对其他事务及其自身的可见性影响程度。具体可以分为如下几个等级:读未提交某个事
千家信息网最后更新 2024年11月27日事务的隔离级别和传播级别有何区别
事务的隔离级别
事务的隔离级别源于事务ACID的I(Isolation),即多个事务同时操作同一实体时,其中一个事务的读写操作对其他事务及其自身的可见性影响程度。具体可以分为如下几个等级:
读未提交
某个事务未提交前,其修改的数据对其他事务可见,这种隔离级别最低,除了确保执行事务本身的原子性,对其他事务几乎无隔离,所以如果源事务回滚,其他事务就会出现脏读现象。读已提交
一个事务针对数据的写操作,只有提交之后,其他事务才可见。这是相对靠谱的方案。也是很多数据库的默认隔离级别。读提交也存在两个主要的问题,第一种是,如果两个事务同时开启,其中一个事务第一次读取,和在另一个事务修改并提交后读取到的数据会不一致,也就是不可重复读;第二个问题是,容易引起死锁。可重复读
一个事务针对数据的读操作一旦开始,其他事务不再可以进行写操作,相当于读锁。可重复读增加了数据的安全性,但是针对新增操作,依然存在幻读问题。- 串行化
串行化是安全性最高的一种隔离界别,也是用的最少的一种隔离级别,事务串行化执行,吞吐量严重受限。
事务的传播级别
和事务的隔离级别不同,传播特性是指一个事务开启后,如果在事务内涉及到其他事务的调用,是沿用主事务,还是开启新事务,亦或是,不接受事务。
- REQUIRED 如果存在一个事务,支持当前事务。如果没有则开启一个新的事务。
- SUPPORTS 如果存在一个事务,支持当前事务。如果没有则按照非事务的执行。
- MANDATORY 如果已经存在一个事务,支持当前事务。如果没有则抛出异常。
- REQUIRES_NEW 总是开启一个新的事务。如果一个事务已经存在,则将这个存在的事务挂起。
- NOT_SUPPORTED 总是按照非事务地执行,并挂起任何存在的事务。
- NEVER 总是按照非事务方式执行,如果存在一个活动事务则抛出异常
- NESTED 如果一个活动的事务存在,则运行在一个嵌套的事务中. 如果没有活动事务, 则按REQUIRED 属性执行。
NESTED传播级别时,如果外层事务不可回滚内存提交的事务。
事务
级别
隔离
数据
传播
问题
支持
活动
安全
两个
同时
安全性
不同
最低
最高
一致
也就是
内存
原子
只有
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发地图显示
审计报告比较数据库
网络安全十大秘诀
数据库执行代码是什么
操作系统如何创建数据库
qq数据库在线查询软件
常用的网络数据库平台有哪几种
王能斌数据库原理b 树
专升本有网络安全专业吗
解决网络安全传播途径
十大网络安全基金
中国郑州网络安全宣传周
建立数据库最新的技术有哪些
互联网科技帝
软件开发接口文档
进销存软件开发计划
appweb服务器
数据库 execute
网络安全专题课公开课
网络安全军地合作问题
宝可梦大集结一直连接服务器
利用数据库检索时
中国科技期刊数据库官网VIP
重庆网络安全监管局
专利数据库需要哪些信息
新浪sae数据库连接
网络安全等保测评师考试
锐取视频服务器
中新科技是互联网公司吗
圣博润网络安全