MySQL中的事务隔离级别

   SQL标准用三个必须在并行的事务之间避免的现象定义了四个级别的事务隔离。这些可能会出现的现象有:

1. 脏读(dirty reads): 一个事务读物了另一个未提交的并行事务写的数据。
2. 不可重复读(non-repeatable reads): 一个事务重新读取前面读取过的数据,发现该数据已经被另一个已提交的事务修改过。
3. 幻读(phantom read): 一个事务查询重新执行一个查询,返回一套符合查询条件的记录,发现这些记录因为其他最近提交的事务而发生了改变。

SQL事务隔离级别
隔离级别 脏读(Dirty Read) 不可重复读(Non-Repeatable Read) 幻读(Phantom Read)
读未提交(Read uncommitted) 可能 可能 可能
读已提交(Read committed) 不可能 可能 可能
可重复读(Repeatable Read) 不可能 不可能 可能
可串行化(Serializable) 不可能 不可能 不可能

在MySql中默认的是事务隔离级别是可重复读(Repeatable Read)。如果想看下MySQL默认事务隔离级别则使用:
  SELECT @@global.tx_isolation;
如果想修改事务隔离级别使用
set global transaction isolcation level +事务隔离级别

你可能感兴趣的:(sql,mysql)