当前位置: > 数据库 > Oracle >

幻读

时间:2016-05-29 03:22来源:linux.it.net.cn 作者:IT

事务A读取与搜索条件相匹配的若干行。事务B以插入或删除行等方式来修改事务A的结果集,然后再提交。

幻读是指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,比如这种修改涉及到表中的“全部数据行”。同时,第二个事务也修改这个表中的数据,这种修改是向表中插入“一行新数据”。那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象发生了幻觉一样.一般解决幻读的方法是增加范围锁RangeS,锁定检锁范围为只读,这样就避免了幻读。  

在数据库定义的四种隔离级别中,REPEATABLE_READ级别可以避免“不可重复读”的问题,但是仍然避免不了“幻读”问题,只有最高隔离级别SERIALIZABLE_READ才可以保证不出现幻读的问题。


 



(责任编辑:IT)
------分隔线----------------------------