2015-04-07 3 views
1

Я использую следующий запрос:Как проверить MySql READ UNCOMMITTED использования для NOLOCK

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

В таблице имеется множество операций записи и операций тяжелого чтения. Чтобы получить минимальный эффект от операций чтения, я хотел использовать операции блокировки чтения. В MySql это делается с помощью «READ UNCOMMITTED» (согласно тому, что я читал).

Как проверить, действительно ли этот код работает?

ответ

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) 
Смежные вопросы