mysql脏写、脏读、不可重复读、幻读

脏写

有两个事务A、B同时更新一条数据,事务A先更新为A值,事务B接着把A值更新为B值。如图:
在这里插入图片描述
事务A更新数据后会写入一条undo log日志,会记录事务A修改前原先的数值是NULL。
当事务A进行回滚后,把这行数据更新回了NULL,事务B一看,我更新的值是B值呀,怎么没了?这就是脏写!

脏读

事务A把这行数据修改为了A值,事务B进行查询,读到的也是A值。但是事务A突然进行回滚了,这行数据又回到了NULL值,接着,事务B读取这数据发现怎么和之前读到的A值不一样了,这就是脏读。

事务B由于事务A的回滚读不到之前的值。

不可重复读

事务A先读到这行数据为A值,
事务B修改这行数据为B值,并且提交了,不会进行回滚了,
事务A再次读取这个数据为B值,和他第一次读到的A值不一样。

不可重复读是什么? 他是指同一个事务查找同一行数据,每次查找的值不一样。

脏读是由于别的事务的回滚导致;而不可重复读读到的是已经提交的数据。

幻读

事务A进行查询,假如查到了10条数据,
事务B进行插入数据,如插入两条数据,并提交。
这是事务A再次查询,就查到了12条,发现怎么和我之前查到的不一样多。这就是幻读。

幻读指的是查询多次发现查到了之前没有的数据。

脏读是指一个事务可以读取到另一个事务未提交的数据不可重复读是指在一个事务内多次读取同一数据时,由于其他事务的修改导致每次读取的结果不一致。幻读是指在一个事务内多次执行相同的查询,由于其他事务的插入或删除导致每次查询的结果不一致。 在MySQL中,事务隔离级别对应的脏读不可重复读幻读的情况如下: - 读未提交(READ UNCOMMITTED)级别下存在脏读不可重复读幻读的问题。 - 读已提交(READ COMMITTED)级别下不存在脏读的问题,但仍可能存在不可重复读幻读的问题。 - 可重复读(REPEATABLE READ)级别下不存在脏读不可重复读的问题,但仍可能存在幻读的问题。 - 串行化(SERIALIZABLE)级别下不存在脏读不可重复读幻读的问题。 因此,在MySQL中,脏读不可重复读幻读都是与事务隔离级别密切相关的读一致性问题。根据需求和业务场景,可以选择合适的事务隔离级别来解决这些问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Mysql-详解脏读不可重复读幻读](https://blog.csdn.net/ahuangqingfeng/article/details/124407846)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [一文搞懂MySQL脏读,幻读不可重复读](https://blog.csdn.net/liuqinhou/article/details/126360614)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值