事务的隔离级别和传播级别有何区别
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,事务的隔离级别事务的隔离级别源于事务ACID的I(Isolation),即多个事务同时操作同一实体时,其中一个事务的读写操作对其他事务及其自身的可见性影响程度。具体可以分为如下几个等级:读未提交某个事
千家信息网最后更新 2025年11月07日事务的隔离级别和传播级别有何区别
事务的隔离级别
事务的隔离级别源于事务ACID的I(Isolation),即多个事务同时操作同一实体时,其中一个事务的读写操作对其他事务及其自身的可见性影响程度。具体可以分为如下几个等级:
读未提交
某个事务未提交前,其修改的数据对其他事务可见,这种隔离级别最低,除了确保执行事务本身的原子性,对其他事务几乎无隔离,所以如果源事务回滚,其他事务就会出现脏读现象。读已提交
一个事务针对数据的写操作,只有提交之后,其他事务才可见。这是相对靠谱的方案。也是很多数据库的默认隔离级别。读提交也存在两个主要的问题,第一种是,如果两个事务同时开启,其中一个事务第一次读取,和在另一个事务修改并提交后读取到的数据会不一致,也就是不可重复读;第二个问题是,容易引起死锁。可重复读
一个事务针对数据的读操作一旦开始,其他事务不再可以进行写操作,相当于读锁。可重复读增加了数据的安全性,但是针对新增操作,依然存在幻读问题。- 串行化
串行化是安全性最高的一种隔离界别,也是用的最少的一种隔离级别,事务串行化执行,吞吐量严重受限。
事务的传播级别
和事务的隔离级别不同,传播特性是指一个事务开启后,如果在事务内涉及到其他事务的调用,是沿用主事务,还是开启新事务,亦或是,不接受事务。
- REQUIRED 如果存在一个事务,支持当前事务。如果没有则开启一个新的事务。
- SUPPORTS 如果存在一个事务,支持当前事务。如果没有则按照非事务的执行。
- MANDATORY 如果已经存在一个事务,支持当前事务。如果没有则抛出异常。
- REQUIRES_NEW 总是开启一个新的事务。如果一个事务已经存在,则将这个存在的事务挂起。
- NOT_SUPPORTED 总是按照非事务地执行,并挂起任何存在的事务。
- NEVER 总是按照非事务方式执行,如果存在一个活动事务则抛出异常
- NESTED 如果一个活动的事务存在,则运行在一个嵌套的事务中. 如果没有活动事务, 则按REQUIRED 属性执行。
NESTED传播级别时,如果外层事务不可回滚内存提交的事务。
事务
级别
隔离
数据
传播
问题
支持
活动
安全
两个
同时
安全性
不同
最低
最高
一致
也就是
内存
原子
只有
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
吉林省创益网络技术
数据库字段长度是字节还是位
计算机网络技术的地域分析
网络安全称号奖牌
肥西数据网络技术开发
软件开发好还是土建好
恢复数据库备份文件
物流领域数据库的基本需求
手机贵阳麻将软件开发公司
sql服务器怎么注册账户
apache连接数据库
华为数据库gaussdb命令
数据库记录时间类型
河南网络安全宣传周专题
sql数据库约束值只能是
数据库管理系统属于数据库
亚马逊服务器租用
软件开发前期用自己的电脑
中心小学安全教育网络安全
网络安全比赛是什么专业
数据库的数据包括哪些内容吗
网络安全360项目
服务器如何看硬盘有多少个
使用数据库写登陆和注册
服务器ip和网关可以一样吗
数据库坐标标示
红色主题数据库设计
数据库研究生招生管理系统
学服务器需要学什么
白猫 数据库