Mysql 存储引擎中InnoDB与MyISAM区别(网络整理)

MVCC ( Multi-Version Concurrency Control )多版本并发控制

InnoDB:通过为每一行记录添加两个额外的隐藏的值来实现MVCC,,这两个值一个记录这行数据何时被创建,另外一个记录这行数据何时过期(或者被删除)。但是InnoDB并不存储这些事件发生时的实际时间,相反它只存储这些事件发生时的系统版本号。这是一个随着事务的创建而不断增长的数字。每个事务在事务开始时会记录它自己的系统版本号。每个查询必须去检查每行数据的版本号与事务的版本号是否相同。让我们来看看当隔离级别是REPEATABLE READ时这种策略是如何应用到特定的操作的:

  SELECT InnoDB必须每行数据来保证它符合两个条件:

  1、InnoDB必须找到一个行的版本,它至少要和事务的版本一样老(也即它的版本号不大于事务的版本号)。这保证了不管是事务开始之前,或者事务创建时,或者修改了这行数据的时候,这行数据是存在的。

  2、这行数据的删除版本必须是未定义的或者比事务版本要大。这可以保证在事务开始之前这行数据没有被删除。

后来逐渐有广州花城的,

Mysql 存储引擎中InnoDB与MyISAM区别(网络整理)

相关文章:

你感兴趣的文章:

标签云: