事务并发的四大问题直观描述

本文详细解释了数据库事务处理中常见的四大问题:脏读、不可重复读、幻读及丢失更新。通过具体案例说明这些现象如何发生,并探讨其对数据一致性的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

脏读
幻读
不可重复读
丢失更新

用户 余额 有效状态
张三 1000 正常

事务A读取到张三的数据,更新余额为900但没commit,此时事务B去读取张三余额为900,之后事务A回滚余额为1000,造成事务B脏读

用户 余额 卡类型
张三 1000 一类卡

事务A需要读取两次张三的数据,第一读取到张三的余额为1000,此时事务B更新张三的余额为900,事务A第二次读取张三的数据发现余额跟第一次不一致,即两次读到的余额不可重复,称为不可重复读。

与不可重复读类似,只不过事务A想查询两次张三的记录,中途事务B新增了一条张三的记录,导致事务A两次读取到的记录数不一致,称为幻读。

丢失更新:事务A和B都拿到张三的余额,事务A减去100提交,此时事务B减去200提交,余额变成800,按道理余额剩700才对,这种情况下造成事务A更新丢失。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值