MySQL支持四种隔离级别,分别是:
0 --> 读未提交 (READ-UNCOMMITTED)
1 --> 读已提交 (READ-COMMITTED)
2 --> 可重复读 (REPEATABLE-READ)
3 --> 序列化 (SERIALIZABLE)
设置隔离级别的方法是:
SET [SESSION|GLOBAL] transaction_isolation=[0|1|2|3];
查看隔离级别的方法是:
SHOW [GLOBAL] VARIABLES LIKE 'transaction_isolation';
mysql> set global transaction_isolation=0;
Query OK, 0 rows affected (0.00 sec)
mysql> show global variables like 'transaction_isolation';
+-----------------------+------------------+
| Variable_name | Value |
+-----------------------+------------------+
| transaction_isolation | READ-UNCOMMITTED |
+-----------------------+------------------+
1 row in set (0.01 sec)
mysql> set global transaction_isolation=1;
Query OK, 0 rows affected (0.00 sec)
mysql> show global variables like 'transaction_isolation';
+-----------------------+----------------+
| Variable_name | Value |
+-----------------------+----------------+
| transaction_isolation | READ-COMMITTED |
+-----------------------+----------------+
1 row in set (0.00 sec)
set global transaction_isolation=2;
mysql> show global variables like 'transaction_isolation';
+-----------------------+-----------------+
| Variable_name | Value |
+-----------------------+-----------------+
| transaction_isolation | REPEATABLE-READ |
+-----------------------+-----------------+
1 row in set (0.00 sec)
mysql> set global transaction_isolation=3;
Query OK, 0 rows affected (0.00 sec)
mysql> show global variables like 'transaction_isolation';
+-----------------------+--------------+
| Variable_name | Value |
+-----------------------+--------------+
| transaction_isolation | SERIALIZABLE |
+-----------------------+--------------+
1 row in set (0.00 sec)