事务--特性,并发问题和隔离级别

事务的四大特性

原子性:不可再分,要么同时成功,要么同时失败
一致性:事务前后状态都满足业务规则的一致性状态。成功提交失败回滚
隔离性:多个事务在并发执行过程中不会相互干扰
持久性:事务执行完后对数据的修改永久的保存下来,不会因为系统错误或者意外情况受到影响

事务的并发问题

脏读(不允许发生)
1 事务1将某条记录的a值从20改到30(未提交)
2 事务2读取了事务1更新后的值30
3 事务1回滚,a值由30变回20。事务2读到的30是个无效值
不可重复读(允许发生)
1 事务1读取了a的值为20
2 事务2将a的值修改成30(已提交)
3 事务1再次读取a的值为30,和第一次读取不一致
幻读(允许发生)
1 事务1读取了a表中的一些数据
2 事务2向a表中插入行(已提交)
3 事务1读取a表时多出了一些新行

事务的隔离级别

读未提交READ UNCOMMITTED
允许事务1读取事务2未提交的修改
读已提交READ COMMITTED
要求事务1只能读取事务2已提交的修改,解决脏读
可重复读REPEATABLE READ
事务1执行期间禁止其他事务对该字段进行修改,确保事务1多次读取到相同的值,解决脏读,不可重复读,mysql中还可解决幻读
串行化SERIALIZABLE
事务1执行期间禁止其他事务对这个表进行增删改,确保事务1可以多次读取到相同的行,可以避免任何并发问题,但是性能低下基本不用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值