1

次のクエリを使用しています。

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

テーブルには、多数の書き込み操作と負荷の高い読み取り操作があります。読み取り操作の影響を最小限に抑えるために、非ロック読み取り操作を使用したいと考えました。MySqlでは、「READ UNCOMMITTED」で行われます(私が読んだものによると)。

このコードが実際に機能しているかどうかをテストするには?

4

1 に答える 1

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

このトランザクションをコミットしない

2 番目の接続

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)
于 2016-03-31T13:41:47.247 に答える