doc: 阅读purge文档

This commit is contained in:
asahi
2025-07-24 12:50:04 +08:00
parent e861ac1ece
commit 4cbfb1bda2

View File

@@ -379,4 +379,22 @@ undo log中主要存储旧的col值用于在回滚或mvcc时为undo操作提
- `TRX_UNDO_DEL_MARK_REC`类型的记录,将原记录标记为删除
- `TRX_UNDO_INSERT_REC`类型的记录,标记对`新纪录`的插入回滚
### purge
`t`中,`a`为聚簇索引,`b`为辅助索引若执行如下sql
```sql
delete from t where a=1;
```
上述语句造成的修改如下:
- 将主键`a`为1的记录标记为delete将记录`delete flag`设置为1聚簇索引中的数据并没有被实际物理删除`且会生成针对聚簇索引的undo log`
- 对于辅助索引中满足`a=1`的记录,同样不会做任何处理,`也不会产生针对辅助索引的undo log`
> undo log只针对聚簇索引生成对于辅助索引的变化并不会生成对应的undo log。
>
> 从上文的undo log内容来看update undo log和insert undo log都记录了唯一索引聚簇索引的值并且update undo log记录了各修改列的oldValue二者均不涉及辅助索引内容。
可知在delete语句执行时并不会马上就对记录进行物理删除而是将记录标记为delete记录实际的删除在purge操作时才被执行。
在update