1
Read uncommitted: 顾名思义,就是一个事务可以读取另一个未提交事务的数据。
事例:老板要给程序员发工资,程序员的工资是3.6万/月。但是发工资时老板不小心按错了
数字,按成3.9万/月,该钱已经打到程序员的户口,但是事务还没有提交,就在这时,程
序员去查看自己这个月的工资,发现比往常多了3千元,以为涨工资了非常高兴。
但是老板及时发现了不对,马上回滚差点就提交了的事务,将数字改成3.6万再提交。
分析:实际程序员这个月的工资还是3.6万,但是程序员看到的是3.9万。
他看到的是老板还没提交事务时的数据。这就是脏读。
解决:Read committed!读提交就能解决脏读问题
***两个客户端按顺序 一起按顺序操作;
实例:
客户端1:(程序员)
mysql:
select @@transaction_isolation;-- 查看事物默认隔离模式
set session transaction isolation level read uncommitted;--设置隔离模式
start transaction; -- 开启
1.begin;
2.select news_num FROM lwl_category_industry WHERE industry_id = 12
打印结果:3.6;
5.select news_num FROM lwl_category_industry WHERE industry_id = 12
打印结果:3.9;(脏读)
8.select news_num FROM lwl_category_industry WHERE industry_id = 12
打印结果:3.6;
客户端2:(老板)
mysql:
select @@transaction_isolation;-- 查看事物默认隔离模式
set session transaction isolation level read uncommitted;--设置隔离模式
start transaction; -- 开启
3.begin;
4.update lwl_category_industry set news_num = 3.9 where industry_id = 12;#老板并为提交 但是员工查看到工资 变成 3.9,然后老板发现打错了,回滚数据
6.rollback;
7.select news_num FROM lwl_category_industry WHERE industry_id = 12
打印结果:3.6;
mysql 事物默认隔离模式 Read uncommitted - 脏读
猜你喜欢
转载自blog.csdn.net/weixin_37647596/article/details/103915295
今日推荐
周排行