mysql(InnoDB)事务隔离

隔离性产生的相关问题

1、丢失更新

      多个事务同时修改某行数据,以致于一些事务的修改被丢失

2、脏读

      事务A读了事务B未提交的数据

3、不可重复读

      事务A读取数据,还没来得及提交,在这个过程中事务B修改了此数据并且已经提交,导致此数据与之前事务A读取的不一致,产生不可重复读。即事务A在两次读数据中间有其他的事务修改了此数据

4、幻读

     事务A读某范围的数据记录,两次读之间的时间里有其他事务在这个范围内插入了新的记录,导致事务A读取数据的过程中出现"幻行"

隔离性解决相关的问题

1、不能解决任何问题的隔离级别(读未提交:read uncommitted)

     最低的隔离级别,不会解决脏读、不可重复的、幻读的问题

2、解决脏读的隔离级别(读提交:read committed)

     事务B未提交的数据对其他事务是不可见的,所以就不会出现事务A读取了事务B未提交的数据,解决了脏读的问题,但是还会产生不可重复读和幻读的问题

3、解决不可重复读的隔离级别(可重复读:repeatable read)

     事务A读取数据的时候,看不到事务B修改提交的数据,但是可以看到事务A新增的数据。解决的不可重复读,但是还是没有解决幻读,mysql默认的隔离级别

4、解决幻读的隔离级别(可串行化:serializable)

    任何事务都是串行执行

你可能感兴趣的:(mysql(InnoDB)事务隔离)