MVCC
2020-03-13 18:16:17 0 举报
MVCC:MYSQL的并发控制流程
作者其他创作
大纲/内容
id
更新
select * from mvcctest ; (2)
创建版本
删除版本
2
令狐冲:创建时间大,不满足
令狐冲
1
undefined
name
5
只能查找创建时间小于等于当前事务ID的数据,和删除时间大于当前事务ID的行(或未删除)
郭靖
begin;update mvcctest set name ='杨过' where id=1;commit;
张无忌
3
DB_ROLL_PTR
假设在事务4之后执行第二次查询:
4
Innodb为每行记录都实现了三个隐藏字段DB_ROW_ID 6字节:行标识 DB_TRX_ID 6字节:插入或更新行的最后一个事务的事务ID,自动递增 (创建版本号)DB_ROLL_PTR 7字节:回滚指针(删除版本号)
插入
Transaction 3
删除版本就是事务的ID
创建时间
假设在事务3之后执行第二次查询:
假设在事务5之后执行第二次查询:
Transaction 4
删除
旧数据记录删除版本新数据记录创建版本
令狐冲:创建时间大,不满足杨过,创建时间大,不满足
Transaction 5
begin;select * from mvcctest ; (1) 第一次查询
aaa
DB_ROW_ID
杨过
NULL
一个事务中查询2次
Transaction 1
01
begin;delete from mvcctest where id=2;commit;
Transaction 2
初始数据
创建版本就是事务的ID
DB_TRX_ID
0 条评论
下一页