【问题标题】:How to test MySql READ UNCOMMITTED usage for nolock如何测试 MySql READ UNCOMMITTED 对 nolock 的使用
【发布时间】:2015-04-07 11:06:25
【问题描述】:

我正在使用以下查询:

SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
SELECT * FROM TABLE_NAME ;
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ ;

该表有很多写操作和繁重的读操作。为了从读取操作中获得最小的效果,我想使用非锁定读取操作。在 MySql 中,它是通过“READ UNCOMMITTED”完成的(根据我阅读的内容)。

如何测试这段代码是否真的有效?

【问题讨论】:

    标签: mysql nolock


    【解决方案1】:

    第一次连接:

     MariaDB [(none)]> START TRANSACTION;
    Query OK, 0 rows affected (0.00 sec)
    
    MariaDB [(none)]> INSERT INTO t2 VALUES(1),(3);
    ERROR 1046 (3D000): No database selected
    MariaDB [(none)]> use test
    Database changed
    MariaDB [test]> INSERT INTO t2 VALUES(1),(3);
    Query OK, 2 rows affected (0.02 sec)
    Records: 2  Duplicates: 0  Warnings: 0
    

    不提交此事务

    第二次连接

    MariaDB [test]> SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
    Query OK, 0 rows affected (0.00 sec)
    
    MariaDB [test]> SELECT * FROM t2;
    +------+
    | i    |
    +------+
    |    1 |
    |    3 |
    +------+
    2 rows in set (0.00 sec)
    
    MariaDB [test]> COMMIT ;
    
     MariaDB [test]> select * from t2;
    Empty set (0.00 sec)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-02
      • 1970-01-01
      相关资源
      最近更新 更多