zoukankan      html  css  js  c++  java
  • 解释和演示一下何为“事务的不可重复读”/“幻影读”

    不可重复读(幻影现象)可重复读

      MySQL默认情况下是可重复读,解决了幻影问题

        mysql> show variables like ‘%tx%’;

        +-----------------------+--------------------------+

        | Variables_name |  Value          |

        +------------------------+--------------------------+

        | tx_isolation     |REPEATABLE-READ |

        | tx_read_only    | OFF            |

        +------------------------+---------------------------+

      改成 read-committed(已提交读)后,出现幻影读

        mysql> set @@session.tx_isolation = 'READ-COMMITTED';

        Query OK, 0 rows affected (0.00 sec)

    演示幻影读:

      A:设置隔离级别为已提交读:

        mysql> set @@session.tx_isolation = 'READ-COMMITTED';

        Query OK, 0 rows affected (0.00 sec)

      对这4行数据加了锁:对表加is锁,对4行加x行锁,事务没有提交

        mysql> select * from t2 where name=abcfor uodate;

        +------+---------+

        |id  | name |

        +------+---------+

        |1  | ABC |

        |3  |abc |

        |8  |ABC |

        |10 |abc |

        +------+---------+

        4 rows in set (0.01 sec)

      B:设置隔离级别为已提交读:

        mysql> set @@session.tx_isolation = 'READ-COMMITTED';

        Query OK, 0 rows affected (0.00 sec)

      对t2表插入 name abc 的数据,成功了:

        mysql> insert into t2(name) values(‘abc’);

      A:再去执行,发现成了5nameabc的数据:

        mysql> select * from t2 where name=abcfor uodate;

        +------+---------+

        |id  | name |

        +------+---------+

        |1  | ABC  |

        |3  |abc   |

        |8  |ABC  |

        |10 |abc   |

        |16| abc   |

        +------+---------+

        4 rows in set (0.01 sec)

      一会4行,一会5行,如果把这个参数设置成已提交读,就出现了幻影现象。

  • 相关阅读:
    JSON.stringify()学习
    【EntityFramework学习笔记】为什么要使用迁移
    使用Telerik的DataPager进行服务器端分页(改进版)
    使用Telerik的DataPager进行服务器端分页
    使用MVVM写的WPF分页控件
    【PostgreSQL】PostgreSQL的安装
    【Telerik】<telerik:RadGridView/>控件的使用
    【PostgreSQL】PostGreSQL数据库,时间数据类型
    WCF的同步和异步(以WPF连接为例)
    【WPF】绑定数据
  • 原文地址:https://www.cnblogs.com/5945yang/p/11346468.html
Copyright © 2011-2022 走看看