首页 > 数据库技术 > 详细

MySQL:解决脏读问题

时间:2021-07-15 09:50:25      阅读:25      评论:0      收藏:0      [点我收藏+]
  • 脏读非常危险,比如张三向李四购买商品,张三开启事务,向李四账号转入 500 块,然后打电 话给李四说钱 已经转了。李四一查询钱到账了,发货给张三。张三收到货后回滚事务,李四的再 查看钱没了。 
  • 解决方案 
    •   将全局的隔离级别进行提升为:  read committed

1. 在 A 窗口设置全局的隔离级别为 read committed

set global transaction isolation level read committed;

2. 重新开启A窗口, 查看设置是否成功.

select @@tx_isolation;

3.  开启B 窗口, A 和 B 窗口选择数据库后, 都开启事务

技术分享图片

 

 4.  A 窗口只是更新两个人的账户,不提交事务

-- tom账户 -500元 
UPDATE account SET money = money - 500 WHERE NAME = tom;
-- jack账户 + 500元 
UPDATE account SET money = money + 500 WHERE NAME = jack;

5. B 窗口进行查询,没有查询到未提交的数据

select * from account;

技术分享图片

 

 

6. A窗口commit提交数据

commit;

7. B 窗口查看数据

select * from account;

技术分享图片

 

MySQL:解决脏读问题

原文:https://www.cnblogs.com/JasperZhao/p/15013800.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!