赞
踩
假设测试表结构是:
mysql> create table if not exists student(
name varchar(11) not null,
age int not null
);
mysql> insert into student (name, age) values ('张三', 28);
mysql> select * from student;
+--------+-----+
| name | age |
+--------+-----+
| 张三 | 28 |
+--------+-----+
上面描述的意思是:
name | age | **DB_TRX_ID(**创建该记录的事务ID) | **DB_ROW_ID(**隐式主键) | **DB_ROLL_PTR(**回滚指针) |
---|---|---|---|---|
张三 | 28 | null | 1 | null |
现在有一个事务10,对student表中记录进行修改(update):将name(张三)改成name(李四)
TIPS:此时,最新的记录是’李四’那条记录
现在又有一个事务11,对student表中记录进行修改(update):将age(28)改成age(38)
这样,就有了一个基于链表记录的历史版本链
upadte
)主讲的,如果是delete
呢?
insert
呢?
insert
是插入,也就是之前没有数据,那么insert
也就没有历史版本update
和delete
可以形成版本链,insert
暂时不考虑select
呢?
select
不会对数据做任何修改,所以,为select
维护多版本,没有意义Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。