1、设置服务器缺省隔离级别
1.1通过修改配置文件设置
可以在my.ini文件中使用transaction-isolation选项来设置服务器的缺省事务隔离级别。
该选项值可以是:
- READ-UNCOMMITTED
- READ-COMMITTED
- REPEATABLE-READ
- SERIALIZABLE
例如:
[mysqld]
transaction-isolation = READ-COMMITTED
1.2通过命令动态设置隔离级别
隔离级别也可以在运行的服务器中动态设置,应使用SET TRANSACTION ISOLATION LEVEL语句。
其语法模式为:
SET [GLOBAL | SESSION] TRANSACTION ISOLATION LEVEL <isolation-level>
其中的<isolation-level>可以是:
- READ UNCOMMITTED
- READ COMMITTED
- REPEATABLE READ
- SERIALIZABLE
例如: SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
1.3、隔离级别的作用范围
1.3.1事务隔离级别的作用范围分为两种:
1.3.1.1全局级:对所有的会话有效
1.3.1.2会话级:只对当前的会话有效
例如,设置会话级隔离级别为READ COMMITTED :
mysql> SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
或:
mysql> SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
设置全局级隔离级别为READ COMMITTED :
mysql> SET GLOBAL TRANSACTION ISOLATION LEVEL READ COMMITTED;
1.4、查看隔离级别
服务器变量tx_isolation(包括会话级和全局级两个变量)中保存着当前的会话隔离级别。
为了查看当前隔离级别,可访问tx_isolation变量:
1.4.1查看会话级的当前隔离级别:
mysql> SELECT @@tx_isolation;
或:
mysql> SELECT @@session.tx_isolation;
1.4.2查看全局级的当前隔离级别:
mysql> SELECT @@global.tx_isolation;