一、脏读
事务A在对一条记录a的字段①进行增加100的操作,在事务A处理还未提交时,事务B对这条记录进行查询,事务B查询到了记录a被事务A修改后的数据,这时候事务A回滚,事务B查询到的数据就和实际不一致,引起脏读。
引起脏读的原因:一个事务读取了另一个事务未提交的数据,而这个数据有可能回滚
二、不可重复读
事务A需要多次查询记录a,在事务A还未结束时,事务B也在访问这条记录a,在事务A的两次查询之间,事务B对记录a进行了update,那么事务A这两次查询到的结果将会不同,这就是不可重复读。
引起不可重复读的原因:一个事务范围内的两次查询之间,数据被另一事务修改。
三、幻读
事务A先查询一次表中数据,然后向这个表中插入一条数据,同时,事务B对一个表中的数据进行了修改,事务A在插入之后再次查询,事务A的两次查询的结果中,表中的原来的数据(除去新增)不同,就像产生幻觉一样,称之为幻读。
注意:幻读的重点在新增或删除