大家好,我是walker
一个从文科自学转行的程序员~
爱好编程,偶尔写写编程文章和生活
欢迎关注公众号【I am Walker】
我的gitee:https://gitee.com/shen-chuhao/walker.git 里面很多技术案例!
脏读(Drity Read):
某个事务已更新一份数据,另一个事务在此时读取了同一份数据,由于某些原因,前一个RollBack了操作,则后一个事务所读取的数据就会是不正确的。
例如:
一开始小明将数据A修改成了B,之后这个时候小红读取了B,但是由于小明将数据回滚了,修改成了A,那么在这个时间点,小红拿的数据就是错误的了,正确的数据应该为A
不可重复读(Non-repeatable read):
在一个事务的两次查询之中数据不一致,这可能是两次查询过程中间插入了一个事务更新的原有的数据。
例如:
小明一开始查询数据时A,但是后面查询的数据是B,因为中途小红将数据改成了B,这个时候就是两次查询数据不一致的问题
幻读(Phantom Read):
在一个事务的两次查询中数据笔数不一致,例如有一个事务查询了几列(Row)数据,而另一个事务却在此时插入了新的几列数据,先前的事务在接下来的查询中,就会发现有几列数据是它先前所没有的。
例如:
一开始小明修改了全部数据,5条数据,然后小红在过程中新增了2条数据,然后小明再次查询的时候,发现我不是已经改了全部的数据5条了吗,为什么又多出了两条多余的数据,有点产生幻觉的意思,所以就是幻读了。