doc: 阅读mysql undo log相关文档

This commit is contained in:
asahi
2025-08-05 21:14:36 +08:00
parent caf011a1fc
commit 3383d032a7

View File

@@ -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 logundo 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