当前位置:Gxlcms > 数据库问题 > MySQL InnoDB Engine--多版本一致性视图(MVCC)

MySQL InnoDB Engine--多版本一致性视图(MVCC)

时间:2021-07-01 10:21:17 帮助过:2人阅读

20) NOT NULL, `C1` VARCHAR(20) NOT NULL, `C2` VARCHAR(20) NOT NULL, PRIMARY KEY (`ID`), KEY `IDX_C1` (`C1`) ) ENGINE=INNODB DEFAULT CHARSET=utf8;

步骤1:事务TX1001在12:00时插入一条记录

 INSERT INTO TB001(ID,C1,C2)
 VALUES(‘AA0001‘,‘BB0001,‘CC0001);

在主键索引/二级索引/重做日志中数据如下:

技术图片

 

步骤2:事务TX1003更新数据但未提交:

UPDATE TB001 
SET C2=‘CC1111‘
WHERE ID=‘AA0001‘

步骤3:事务TX99999999999开启可重复读事务,开启事务执行第一条SQL语句时:

A、当前所有TX1001及之前事务都已提交

B、当前写事务最大ID为TX1004

C、事务TX1002和TX1004都已提交

D、事务TX1003未提交

 

步骤4:事务TX1003提交更新,更新后在主键索引/二级索引/重做日志中数据如下:

技术图片

 

步骤5:事务TX1005执行更新并提交:

UPDATE TB001 
SET C1=‘BB1111‘ WHERE ID=‘AA0001‘

更新后在主键索引/二级索引/重做日志中数据如下:

技术图片

 

步骤6:事务TX1007执行删除并提交:

DELETE FROM TB0001 
WHERE ID=AA0001

更新后在主键索引/二级索引/重做日志中数据如下:

技术图片

 

步骤7:事务TX99999999999执行查询:

SELECT * 
FROM TB001
WHERE C1=BB0001

查询如何执行呢?

MySQL InnoDB Engine--多版本一致性视图(MVCC)

标签:span   日志   主键   class   版本   nod   lock   如何   values   

人气教程排行