innodb当前读&快照读

innodb的操作可以分为当前读(current read)快照读(snapshot read):

1. 快照读(snapshot read)

    简单的select操作(不包括 select ... lock in share mode, select ... for update)

2.当前读(current read)

    select ... lock in share mode

    select ... for update

    insert

    update

    delete

在RR级别下,快照读是通过MVVC(多版本控制)和undo log来实现的,当前读是通过加record lock(记录锁)和gap lock(间隙锁)来实现的。

innodb在快照读的情况下并没有真正的避免不可重复读(出现幻读,也导致了不可重复读), 但是在当前读的情况下避免了不可重复读和幻读!!! 

阅读更多

没有更多推荐了,返回首页