mysql事务隔离级别

mysql事务隔离级别设置.

概述 mysql事务隔离级别设置.

查询和设置 查看当前设置 查询全局和会话事务隔离级别

mysql> select @@tx_isolation;
mysql> select @@global.tx_isolation; 
mysql> select @@session.tx_isolation; 

设置隔离级别 设置当前会话隔离级别

mysql> set tx_isolation = 'read-committed';

设置系统隔离级别

mysql> set global tx_isolation = 'read-committed';

命令行操作,开始事务时

mysql> start transaction

配置文件写法 在my.cnf中加入一行

transaction-isolation = read-committed

事务隔离级别说明 事务隔离级别

read-uncommitted

可以看到未提交的数据(脏读)

read-committed

读取提交的数据。但是,可能多次读取的数据结果不一致(不可重复读,幻读)

repeatable-read (mysql默认隔离级别)

可以重复读取,但有幻读。读写观点:读取的数据行不可写,但是可以往表中新增数据。在mysql中,其他事务新增的数据,看不到,不会产生幻读。采用多版本并发控制(MVCC)机制解决幻读问题

serializable

可读,不可写。写数据必须等待另一个事务结束