事务特性和并发事务带来的问题

事务的四个属性

原子性(Atomicity)

事务是一个原子操作单位,对其数据的修改,要么全都执行,要么全都不执行

一致性(Consistent)

在事务开始和完成时,数据都必须保持一致,这意味着所有相关的数据规则都必须应用于事务的修改,以保持数据的完整性;事务结束时,所有的内部数据结构也都必须是正确的

隔离性(Isolation)

数据库系统提供一定的隔离机制,保证事务在不受外部并发操作影响的“独立”环境执行,这意味着事务过程中的中间状态对外部是不可见的,反之亦然

持久性(Durable)

事务完成之后,它对于数据的修改是永久性的,即使出现系统故障也能够保持

并发事务带来的问题

更新丢失

两个事务或多个事务选择同一行,然后基于最初选定的值更新该行时,由于每个事务都不知道其他事务的存在,就会发生更新丢失问题,最后的更新覆盖了其他事务的做的更新

脏读

事务A读取到了事务B已修改但是尚未提交数据,还在这个基础上做了操作,此时,如果事务B回滚,A读取的数据无效,不符合一致性要求

不可重复读

事务A读到事务B提交的新增数据,不符合隔离性

幻读

事务A读取到了事务B提交的新增数据,不符合隔离性

提醒:

脏读:当前事务可以查看到别的事务未提交的数据(侧重点在于别的事务未提交)

不可重复读:侧重于已提交事务的更新修改数据

幻读:侧重于已提交事务的新增和删除

事务隔离级别

 读数据一致性脏读不可重复读幻读
未提交读最低级别,只能保证不读取物理上损坏的数据
已提交读语句级
可重复读事务级
可串行化最高级别,事务级

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值