事务的隔离级别和传播级别有何区别
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,事务的隔离级别事务的隔离级别源于事务ACID的I(Isolation),即多个事务同时操作同一实体时,其中一个事务的读写操作对其他事务及其自身的可见性影响程度。具体可以分为如下几个等级:读未提交某个事
千家信息网最后更新 2025年01月20日事务的隔离级别和传播级别有何区别
事务的隔离级别
事务的隔离级别源于事务ACID的I(Isolation),即多个事务同时操作同一实体时,其中一个事务的读写操作对其他事务及其自身的可见性影响程度。具体可以分为如下几个等级:
读未提交
某个事务未提交前,其修改的数据对其他事务可见,这种隔离级别最低,除了确保执行事务本身的原子性,对其他事务几乎无隔离,所以如果源事务回滚,其他事务就会出现脏读现象。读已提交
一个事务针对数据的写操作,只有提交之后,其他事务才可见。这是相对靠谱的方案。也是很多数据库的默认隔离级别。读提交也存在两个主要的问题,第一种是,如果两个事务同时开启,其中一个事务第一次读取,和在另一个事务修改并提交后读取到的数据会不一致,也就是不可重复读;第二个问题是,容易引起死锁。可重复读
一个事务针对数据的读操作一旦开始,其他事务不再可以进行写操作,相当于读锁。可重复读增加了数据的安全性,但是针对新增操作,依然存在幻读问题。- 串行化
串行化是安全性最高的一种隔离界别,也是用的最少的一种隔离级别,事务串行化执行,吞吐量严重受限。
事务的传播级别
和事务的隔离级别不同,传播特性是指一个事务开启后,如果在事务内涉及到其他事务的调用,是沿用主事务,还是开启新事务,亦或是,不接受事务。
- REQUIRED 如果存在一个事务,支持当前事务。如果没有则开启一个新的事务。
- SUPPORTS 如果存在一个事务,支持当前事务。如果没有则按照非事务的执行。
- MANDATORY 如果已经存在一个事务,支持当前事务。如果没有则抛出异常。
- REQUIRES_NEW 总是开启一个新的事务。如果一个事务已经存在,则将这个存在的事务挂起。
- NOT_SUPPORTED 总是按照非事务地执行,并挂起任何存在的事务。
- NEVER 总是按照非事务方式执行,如果存在一个活动事务则抛出异常
- NESTED 如果一个活动的事务存在,则运行在一个嵌套的事务中. 如果没有活动事务, 则按REQUIRED 属性执行。
NESTED传播级别时,如果外层事务不可回滚内存提交的事务。
事务
级别
隔离
数据
传播
问题
支持
活动
安全
两个
同时
安全性
不同
最低
最高
一致
也就是
内存
原子
只有
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
30岁转行软件开发晚不晚
世界上真有网络安全吗
上海久创软件开发有限公司
天津市台宝华网络技术
福清网络安全教育平台
手机软件开发app代码
网络安全色的特点
马士兵网络安全资源
网络技术支持排查
电子表格服务器搭建
网络安全三大组件
杭州智慧社区软件开发
软件开发可行性案例
手机应用的服务器
数据库安全设计步骤
网络安全期末考试卷
网络安全暖场视频心得体会
数据库基础与实践技术第一章
数据库保密系列sds
迈斯门禁配置数据库
网站服务器怎么防止被攻击
网址服务器管理员登录
全境封锁代理服务器
网络安全保卫知识竞赛
武汉汉阳软件开发公司
中山童车软件开发
广东移动网络安全面经
句容市歌德网络技术培训公司
K8s架构数据库组件
软件开发成本评估管理办法