幻像行也属于脏读的现象,3级隔离即可重复读在更新时同样也会产生脏读的现象,
而'可串行读'即最高隔离则避免此现象的发生,在删除时,如果有在删除之前有
用户读取此记录,其他用户删除后,删除前读取所看到的记录即为幻像行的现象.

解决方案 »

  1.   

    幻像行和脏读是有区别的。阿来的例子是脏读,但不是幻象行。3级隔离,虽然没有加数据集锁,但是删除的数据是加了锁的,因此应该不会出现幻像啊。
    比如:
    A: select count(*) from table1
    B: insert .. into table1
    A操作是对table1中所有记录加锁,B操作不影响table1中的记录,因此可以进行。但是实际上B操作将影响A操作的结果。如果对table1加上数据集锁,B操作不能进行,A操作的结果就不会出问题。