zoukankan      html  css  js  c++  java
  • MySQL RR隔离 读一致性

    MySQL RR 模式下 事务隔离问题:
    
    Session 1:
    mysql> select * from test;
    +------+------+
    | id   | name |
    +------+------+
    | NULL | a    |
    |    2 | b    |
    |    3 | c    |
    |    1 | a01  |
    |    4 | a    |
    |    4 | a    |
    |    5 | c    |
    +------+------+
    7 rows in set (0.00 sec)
    
    mysql> update test set name='a999' where id=1;
    Query OK, 1 row affected (0.01 sec)
    Rows matched: 1  Changed: 1  Warnings: 0
    
    mysql> select * from test;
    +------+------+
    | id   | name |
    +------+------+
    | NULL | a    |
    |    2 | b    |
    |    3 | c    |
    |    1 | a999 |
    |    4 | a    |
    |    4 | a    |
    |    5 | c    |
    +------+------+
    7 rows in set (0.00 sec)
    
    
    Session 2:
    mysql>  select * from test ;
    +------+------+
    | id   | name |
    +------+------+
    | NULL | a    |
    |    2 | b    |
    |    3 | c    |
    |    1 | a01  |
    |    4 | a    |
    |    4 | a    |
    |    5 | c    |
    +------+------+
    7 rows in set (0.00 sec)
    
    mysql>  select * from test ;
    +------+------+
    | id   | name |
    +------+------+
    | NULL | a    |
    |    2 | b    |
    |    3 | c    |
    |    1 | a999 |
    |    4 | a    |
    |    4 | a    |
    |    5 | c    |
    +------+------+
    7 rows in set (0.00 sec)
    
    
    此时没有开启事务,RR模式下 更新立即被看到
    
    
    
    /****************************************************
    
    Session 2开启事务:
    
    
    
    SESSION 1:
    mysql> update test set name='a0101' where id=1;
    Query OK, 1 row affected (0.00 sec)
    Rows matched: 1  Changed: 1  Warnings: 0
    
    mysql> select * from test;
    +------+-------+
    | id   | name  |
    +------+-------+
    | NULL | a     |
    |    2 | b     |
    |    3 | c     |
    |    1 | a0101 |
    |    4 | a     |
    |    4 | a     |
    |    5 | c     |
    +------+-------+
    7 rows in set (0.00 sec)
    
    
    此时在查看Session 2:
    
    mysql>  select * from test ;
    +------+------+
    | id   | name |
    +------+------+
    | NULL | a    |
    |    2 | b    |
    |    3 | c    |
    |    1 | a999 |
    |    4 | a    |
    |    4 | a    |
    |    5 | c    |
    +------+------+
    7 rows in set (0.00 sec)
    
    mysql> commit;
    Query OK, 0 rows affected (0.00 sec)  ---需要手动提交事务
    
    mysql>  select * from test ;
    +------+-------+
    | id   | name  |
    +------+-------+
    | NULL | a     |
    |    2 | b     |
    |    3 | c     |
    |    1 | a0101 |
    |    4 | a     |
    |    4 | a     |
    |    5 | c     |
    +------+-------+
    7 rows in set (0.00 sec)

  • 相关阅读:
    Ubuntu上搭建Watir-Webdriver与Cucumber环境
    使--no-ri --no-rdoc成为gem安装的默认选项
    Ruby require 路径问题
    【原创】LoadRunner Java Vuser脚本的配置和调试指南
    【原创】LoadRunner Java Vuser开发环境配置指南
    【原创】使用Nmon_Analyzer处理较大nmon文件的方法
    2014年,马上要上班啦,希望一切顺利
    关于.jar的文件在cmd中无法连接数据库的问题
    ios 的通知机制
    ios开发小技巧-用宏化简代码
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13350376.html
Copyright © 2011-2022 走看看