InnoDB的MVCC(多版本并发控制)
2019-04-22 本文已影响0人
啦啦啦老王
InnoDB存储引擎存储的每行记录后面都有两个隐形的字段,一个存储行版本号,一个存储行删除标记。
SELECT:
InnoDB会根据两个条件查询数据:
a.行记录的存储版本号小于或等于当前事务的版本号(保证在事务开始前创建、修改或在当前事务时创建、修改)
b.行记录的删除标记未定义或大于当前事务的版本号
INSERT:
InnoDB对新插入的每一行保存当前事务的版本号作为行版本号
DELETE:
InnoDB对删除的每一行保存当前事务的版本号作为删除标记
UPDATE:
InnoDB对更新的每一行保存当前事务版本号作为新的行版本号,并将旧的行版本号作为删除标记