doc: 阅读mysql undo log相关文档
This commit is contained in:
@@ -417,6 +417,15 @@ undo log除了由undo log record组成外,其还包含了一个undo log header
|
|||||||
|
|
||||||
通过index中的记录及其rollptr引用的链表,可以对记录关联的`I, J, K`三个版本进行还原。
|
通过index中的记录及其rollptr引用的链表,可以对记录关联的`I, J, K`三个版本进行还原。
|
||||||
|
|
||||||
|
#### 物理组织方式
|
||||||
|
undo log的结构如上述所示,我们无法控制事务生成undo log的大小(当事务操作大量的数据时,其undo log对应的undo records数量也会变多,undo log大小更大)。但是,`最终生成undo log写入磁盘时,会基于固定的大小进行写入(16KB)`。
|
||||||
|
|
||||||
|
由于事务关联`undo log`的大小是无法控制的,其大小可能需要多个页来进行存储。故而,`对占用空间较大的undo log,undo page会按照需要进行分配`;`而对于大小较小的undo log,会将多个undo log放置在同一个undo page中`。
|
||||||
|
|
||||||
|
> undo log和undo page的对应关系是灵活的,既可能一个undo log占用多个undo pages,也可能多个undo log共用相同的undo page
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### purge
|
### purge
|
||||||
表`t`中,`a`为聚簇索引,`b`为辅助索引,若执行如下sql
|
表`t`中,`a`为聚簇索引,`b`为辅助索引,若执行如下sql
|
||||||
```sql
|
```sql
|
||||||
|
|||||||
Reference in New Issue
Block a user