mysql事务导致的一些问题

1.第一类丢失更新

撤销一个事务的时候,把其他事务已提交的更新数据覆盖了;这是完全没有事务隔离级别造成的;如果事务 1 被提交,另一个事务被撤销,那么会连同事务 1 所作的更新也被撤销

2.第二类丢失更新

当两个或多个事务查询相同的记录,然后各自基于查询的结果更新记录时,会造成第二类更新丢失的问题;每个事务不知道其他事务的存在,最后一个事务对记录所作的更改将覆盖其他事务之前对该记录的更改

3.脏读

如果一个事务对数据进行了更新,但事务还没有提交,另外一个事务就可以”看到”该事务没有提交的更新结果;这样造成的问题就是,如果第一个事务回滚,那么第二个事务在此之前”看到”的数据就是脏数据

4.幻读

一个事务(同一个 read view)在前后两次查询同一范围的时候,后一次查询看到了前一次查询没有看到的行

5.不可重复读

不可重复读是指同一个事务在整个事务过程中对同一笔数据进行读取,每次读取结果不同.如果事务 1 在事务 2 的更新操作之前读一次数据,在事务 2 的更新操作之后再读取同一笔数据一次,两次结果是不同的