事务、锁与MVCC

目标与手段

MySQL的事务提供了四种隔离级别,这个是最终的目的,其余所有的锁机制、MVCC机制都是为此服务的。

策略与机制

之前经常听人把锁和MVCC放到一起谈。其实这个不是一个层面的东西。严格来说,我们的目标只有一点:在满足隔离级别的前提下提升并发性能。于是催生的手段就是一致性非锁定读和一致性锁定读,而MVCC不过是基于多版本实现这种方式的机制而已。
一致性非锁定读:在read commited和repeatable read的隔离级别下,都会采用一致性非锁定读,其实质是每个事务读取满足自己要求的版本。(rc是读最新版,rr是读事务开始时的版本)
一致性锁定读:select for update。这个是有时候业务中需要根据读取的值做完判断之后有一些更新操作,所以必须在读取阶段就锁定。

你可能感兴趣的:(事务、锁与MVCC)