Mvcc其实并不是真正意义上实现的乐观锁。mysql只是用它来解决事务隔离级别中的不可重复读的问题。 当事务T1 开启后, 需要修改某行, 会先给该行加上排他锁, 并且生成一个版本。 此时,事务T2进入,读取的记录永远是事务T1提交前的一个版本。 避免了2次读的记录不一致的情况。