Bootstrap

mysql事务隔离级别及幻读

一、事务的基本特性(ACID)

      1.原子性(Atomicity):事务中的所有操作要么全部生效,要么全部不生效。事务如果执行过程中报错,会将所有的操作回滚。也就是事务中的所有操作是一个整体,就像化学中学过的院子,是构成物质的基本单位。

      2.一致性(Consistency):事务开始前和事务结束后,数据处于一致性状态。这个一致性,是指逻辑上的一致性。比如A转账给B,事务在执行过程中数据可能在不一致的状态,但是执行完成后。A和B的账户余额,加起来是和事务执行前一样的。

      3.隔离性(Isolation):多个事务并发处理数据时,理论上应当互不影响,相互隔离。

      4.持久性(Druability):事务提交后,对数据库的更新会永久保存下来。

二、事务的隔离级别

       查看事务的隔离级别:select @@tx_isolation;

      1.读未提交(read-uncommitted)

         一个事务可以读取另一个事务未提交的数据。这种隔离级别会出现脏读

         

      2.读已提交(read-committed)

         一个事务可以读取另一个事务已提交的数据。这种隔离级别会出现不可重复读

         

        3.可重复读(repeatable-read)

            同一个事务同样的查询,在事务中任何时刻查询查询结果一致。这种隔离界别会出现幻读

            

 

         

 

 

;