本文主要是介绍什么是脏读?幻读?不可重复读?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
-
脏读(Drity Read):某个事务 A 已更新一份数据,另一个事务 B 在此时读取了同一份数据,由于某些原因,事务 A 回滚,而事务B读取到事务 A 回滚前的数据。
-
例子:小明读取到小红提交的100数据.但是小红异常回滚了数据,100变成了90,这个时候小明还是100,但实际是90(脏读)
-
**不可重复读(Non-repeatable read): **在一个事务的两次查询之中数据不一致,这可能是两次查询过程中间插入了一个事务更新的原有的数据。
-
例子:小明多次读取A数据,小红在小明读取数据时,每次读取都修改了数据并提交,小明多次读到的数据不一致
-
幻读(Phantom Read): 在一个事务的两次查询中数据行数不一致,例如有一个事务查询了几列(Row)数据,而另一个事务却在此时插入了新的几列数据,先前的事务在接下来的查询中,就会发现有几列数据是它先前所没有的。
例子:小明修改了A,B数据,小红同时又插入了一条C数据,小明会感觉自己明明数据都改了,突然多出来一条,以为
出现了幻觉自己漏了一条 。
这篇关于什么是脏读?幻读?不可重复读?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!