Mysql 的InnoDB存储引擎实现的不是简单的行级锁,实现的是MVCC,多版本并发控制,可以理解成行级锁的一个变种. InnoDB的MVCC是通过在每行纪录后面保存两个隐藏的列来实现的.这两个列,一个是保存了行的创建时间,一个是保存了行的过期时间(删除时间),时间是用的系统的版本号来存储的. 在select时,InnoDB会根据两个条件组合检查每行纪录: a.InnoDB只查找版本号小于等于当前事务版本号的数据行,这样可以确保这些读取的行, 要么是在这个事务开始前已经存在的,要么是在这个事务…