MySQL中可重复读是怎么实现的?
答:通过一致性视图(快照)和多版本并发控制(MVCC)实现的。
MVCC是一种乐观锁的实现方式,而且是一种很常见的乐观锁实现方式。
所谓多版本,就是一行记录在数据库中存储了多个版本,每个版本以事务ID作为版本号。InnoDB 里面每个事务有一个唯一的事务 ID,是在事务开始的时候向InnoDB的事务系统申请的,并且按照申请顺序严格递增的。假如一行记录被多个事务更新,那么,就会产生多个版本的记录。
链接: link.
答:通过一致性视图(快照)和多版本并发控制(MVCC)实现的。
MVCC是一种乐观锁的实现方式,而且是一种很常见的乐观锁实现方式。
所谓多版本,就是一行记录在数据库中存储了多个版本,每个版本以事务ID作为版本号。InnoDB 里面每个事务有一个唯一的事务 ID,是在事务开始的时候向InnoDB的事务系统申请的,并且按照申请顺序严格递增的。假如一行记录被多个事务更新,那么,就会产生多个版本的记录。
链接: link.