zoukankan      html  css  js  c++  java
  • MySQL:解决脏读问题

    • 脏读非常危险,比如张三向李四购买商品,张三开启事务,向李四账号转入 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;

  • 相关阅读:
    HDUOJ---2152
    HDUOJ ---悼念512汶川大地震遇难同胞——来生一起走
    HDUOJ --2566
    HDUOJ ----1709
    HDUOJ---1171
    HDUOJ ------1398
    catalan---卡特兰数(小结)
    向前字典排序
    HDUOJ--Holding Bin-Laden Captive!
    HDUOJ----Ignatius and the Princess III
  • 原文地址:https://www.cnblogs.com/JasperZhao/p/15013800.html
Copyright © 2011-2022 走看看