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

Posted fancy-li

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库中的脏读幻读和不可重复读相关的知识,希望对你有一定的参考价值。

1、数据脏读

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

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

2、数据幻读

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

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

3、不可重复读

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

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

以上是关于数据库中的脏读幻读和不可重复读的主要内容,如果未能解决你的问题,请参考以下文章

什么是脏读,幻读和不可重复读

数据库的脏读幻读不可重复读

数据库的脏读不可重复读和幻读区别

数据库的脏读不可重复读和幻读区别

关于脏读幻读和不可重复读

MySQL理论:脏读不可重复读幻读