学习之路-事务

一、事务的特性ACID

原子性(Atomic)
事务由一个或多个行为绑在一起组成,好像是一个单独的工作单元。原子性确保在事务中的所有操作要么都发生,要么都不发生。
  一致性(Consistent):
一旦一个事务结束了(不管成功与否),系统所处的状态和它的业务规则是一致的。即数据应当不会被破坏。
隔离性(Isolated):
事务应该允许多个用户操作同一个数据,一个用户的操作不会和其他用户的操作相混淆。
  持久性(Durable):
一旦事务完成,事务的结果应该持久化。


二、事务并发引起的问题

单个事务能保证单项业务的数据完整性,但是当多个事务同时运行时可能带来并发问题,具体体现在:
*第一类丢失更新。

当取消一个事务时会覆盖另一个事务提交更新的数据


*脏读

一个事务读取到另一个事务未提交的更新数据


*不可重复读

一个事务读取到另一个事务已提交的更新数据


*第二类丢失更新

属于不可重复读的特例,一个事务覆盖了另一个事务已提交的更新数据


*幻读。

一个事务读取到另一个事务已提交的插入的更新数据



三、解决事务并发引起的问题——设置事务的隔离级别


设定隔离级别的原则

隔离级别越高,越能保证数据的完整性和一致性,但是对并发性能的影响也越大。
对于多数应用程序,可以优先考虑把数据库系统的隔离级别设为Read Committed,它能够避免脏读,而且具有较好的并发性能。尽管它会导致不可重复读,虚读和第二类丢失更新这些并发问题,在可能出现这类问题的个别场合,可以由应用程序悲观锁和乐观锁来解决。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值