MySQL中的事务隔离级别
    
                    
 
                    
                
?
SQL 标准用三个必须在并行的事务之间避免的现象定义了四个级别的事务隔离。 这些不希望发生的现象是:
一个事务读取了另一个未提交的并行事务写的数据。
- 不可重复读(non-repeatable reads) 
 
一个事务重新读取前面读取过的数据, 发现该数据已经被另一个已提交的事务修改过。
一个事务重新执行一个查询,返回一套符合查询条件的行, 发现这些行因为其他最近提交的事务而发生了改变。
SQL 事务隔离级别
?
| 
离级别
 | 
?脏读(Dirty Read)
 | 
?? ? ? ? 不可重复读(NonRepeatable Read)
 | 
幻读(Phantom Read)
 | 
| 
读未提交(Read uncommitted)
 | 
可能 | 
可能 | 
可能 | 
| 
读已提交(Read committed)
 | 
不可能 | 
可能 | 
可能 | 
| 
可重复读(Repeatable read)
 | 
不可能 | 
不可能 | 
可能 | 
| 
可串行化(Serializable )
 | 
不可能 | 
不可能 | 
不可能 | 
 
在MySQL中默认事务隔离级别是可重复读(Repeatable read).可通过SQL语句查询:
查看InnoDB系统级别的事务隔离级别:
?? ?mysql> SELECT @@global.tx_isolation;
结果:
+-----------------------+
| @@global.tx_isolation |
+-----------------------+
| REPEATABLE-READ? ?? ? |
+-----------------------+
1 row in set (0.00 sec)
查看InnoDB会话级别的事务隔离级别:
                     
                    
                    
                        免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。