二十七、事务隔离级别示例

tech2025-07-09  4

1、设置服务器缺省隔离级别

通过修改配置文件设置

可以在my.ini文件中使用transaction-isolation选项来设置服务器的缺省事务隔离级别。

该选项值可以是:

READ-UNCOMMITTEDREAD-COMMITTEDREPEATABLE-READSERIALIZABLE

例如:

[mysqld]

transaction-isolation = READ-COMMITTED

通过命令动态设置隔离级别

隔离级别也可以在运行的服务器中动态设置,应使用SET TRANSACTION ISOLATION LEVEL语句。

其语法模式为:

              SET [GLOBAL | SESSION] TRANSACTION ISOLATION LEVEL <isolation-level>

              其中的<isolation-level>可以是:

 READ UNCOMMITTEDREAD COMMITTEDREPEATABLE READSERIALIZABLE

例如: SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;

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;

3、查看隔离级别

服务器变量tx_isolation(包括会话级和全局级两个变量)中保存着当前的会话隔离级别。

为了查看当前隔离级别,可访问tx_isolation变量:

查看会话级的当前隔离级别:

              mysql> SELECT @@tx_isolation;

              或:

              mysql> SELECT @@session.tx_isolation;

 

查看全局级的当前隔离级别:

              mysql> SELECT @@global.tx_isolation;

 

最新回复(0)