数据库的脏读、不可重复读和幻读分别是什么?
回答重点
脏读(Dirty Read)
一个事务可以读取到另一个事务未提交的数据,如果该未提交的事务最终被回滚,那么第一个事务读取到的数据就是不一致的(脏数据)。
不可重复读(Non-repeatable Read)
在一个事务中,多次读取同一条数据时,因其他事务的提交导致读取结果不一致。
幻读(Phantom Read)
在同一事务中,执行相同的查询操作,因其他事务的插入或删除数据导致读取结果数量不一致。
与隔离级别的关系
√表示可能发送
×表示不会发生
不可重复读 VS 幻读
幻读是指在事务期间,对于数据总量的突然增加或减少,将其他事务提交的读取到了(针对数据的数量);
不可重复读是指对于同一条数据,在事务执行期间,这条数据的字段值发生了变化,读取到了其他事务提交修改的数据(针对数据的内容)。
#Oracle(1)#MySQL(21)评论