Spring事务隔离级别的几个概念 脏读、不可重复读、幻读

事务隔离级别。定义的是事务在数据库读写方面的控制范围。(在读取数据库的过程中,如果两个事务并发执行,那么彼此之间的数据是如何影响。脏读、不可重复读、幻读

发生脏读、不可重复读、幻读的原因是其他事务的执行打扰到了本事务的执行。

脏读 :所谓的脏读,其实就是读到了别的事务回滚前的脏数据。比如事务B执行过程中修改了数据X,在未提交前,事务A读取了X,而事务B却回滚了,这样事务A就形成了脏读。
 
不可重复读 :被其他事务影响本事务为结束前之前读到的值不一致了。不可重复读字面含义已经很明了了,比如事务A首先读取了一条数据,然后执行逻辑的时候,事务B将这条数据改变了,然后事务A再次读取的时候,发现数据不匹配了,就是所谓的不可重复读了。
 
幻读 :小的时候数手指,第一次数十10个,第二次数是11个,怎么回事?产生幻觉了?
幻读也是这样子,事务A首先根据条件索引得到10条数据,然后事务B改变了数据库一条数据,导致也符合事务A当时的搜索条件,这样事务A再次搜索发现有11条数据了,就产生了幻读。

猜你喜欢

转载自blog.csdn.net/qq_33656559/article/details/88324712