事务隔离级别

读未提交:在支持事务的数据库中是没有这种情况的

 

读已提交:另一个事务中已经提交的数据在我的事务中就可以读取出来,大多数业务场景都可以使用此隔离级别,此隔离级别会出现不可重复读,幻读,幻读针对新增和删除,一般没有影响,但是不可重复读针对的是更新update,这就可以会导致问题,不可重复读就是在一个事务中两次读取同一行或几行数据,但是返回的值不一样

e.g.
    1.在事务1中,Mary 读取了自己的工资为1000,操作并没有完成
    2.在事务2中,这时财务人员修改了Mary的工资为2000,并提交了事务.
    3.在事务1中,Mary 再次读取自己的工资时,工资变为了2000

 解决办法:如果只有在修改事务完全提交之后才可以读取数据,则可以避免该问题

不可重读会导致数据不一致,比如在同一个账户,一个事务查询出来1000,然后加500更新为1500,另一个账户查询出来减200变成了800,其实最终结果应该是1300才对(另一个账户查出来如果是1500是对的,但是可能查询出来是1000,就导致了问题,数据明显不是期望的),

要让数据可以重复读,就必须对数据加锁,select * from account where id = 2 for update;

在一个事务更新提交之前另一个事务连查询都查不出来,也就谈不上不可重读了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值