MongoDB.MySQL.Oracle.PostgreSQL 等事务型数据库都有 mvcc 的概念. MVCC: 即多版本并发控制,主要是为了提高数据库的读写性能,让数据库在读写的时候不用去加锁.mvcc 主要是处理读请求,这个读指的是快照读,而不是当前读,快照读就是普通的 select 查询.而当前读,其实就是一种悲观锁,要靠加锁实现,比如我们执行 update 或 delete 的时候,你需要先把数据读出来,然后再进行修改操作.比如 select xx for update, 这种排他锁,…