Mysql(六) -- 事务ACID的实现

2020-10-15  本文已影响0人  OakesYa

本文参考mysql在RR的隔离级别下,究竟是通过MVCC解决幻读的还是通过行锁的next key算法解决的?,MySQL日志系统

背景

我们在Mysql第三篇讲解过数据的事务以及数据库的隔离级别,当时只提到ACID中的ACD是通过日志实现的,I中的读已提交以及可重复读是通过MVCC来实现的,那么这一篇文章就学习一下。

日志

MVCC

MVCC也叫做多版本控制,是通过数据库快照来实现。InnoDB 的 MVCC,是通过在每行记录后面保存两个隐藏的列来实现。一个是行的创建时期系统版本号,一个是行的删除时间系统版本号。系统版本号根据事务开始而自增。所以当我在两个事务分别进行操作时可以根据这个系统版本号或者叫快照来进行安全查看。

上一篇 下一篇

猜你喜欢

热点阅读