数据库中的脏读、幻读和不可重复读

时间:2022-06-28 02:36:03

1、数据脏读

事务a修改了某条数据,然后事务b读取了事务a修改的该条数据,然后事务a由于某些原因,事务a回滚了,这样事务b读到的数据就和回滚的数据不同了,这时事务b读取的数据就是脏数据。

概括来讲:就是一个事务读取了另一个事务未提交的数据。

2、数据幻读

事务a按一定条件读取了该表的一些数据,然后事务b想该表插入了一些满足事务a查询条件的数据,当事务a再次以相同条件查询数据时,会发现多出来一些数据,就好像产生了幻觉一样,我们称为幻读。

概括来讲,就是一个事物的两次查询,出现的查询数目不一致的情况。

3、不可重复读

事务a读取了某条数据,事务a没有提交,然后事务b修改了该条数据,这时事务a再次读取该条数据,这样两次读取的数据不同,我们成为该条数据为不可重复读。

概括来讲就是一个事务多次读取某条数据,发现读取的数据不完全相同。