doc: 阅读undo log文档

This commit is contained in:
asahi
2025-08-07 13:35:55 +08:00
parent 965f75a3ee
commit 3ab6dfcb48

View File

@@ -450,6 +450,16 @@ undo segment header中包含如下内容
##### undo log storing ##### undo log storing
undo page中的空间用于存储undo log对于`大小较小的undo log`innodb会对undo page进行reuse在undo page中存储多个undo logs避免浪费空间。而对于大小较大的undo log会使用多个undo page来对该undo log进行存储。undo page reuse只会发生在segment的第一个page undo page中的空间用于存储undo log对于`大小较小的undo log`innodb会对undo page进行reuse在undo page中存储多个undo logs避免浪费空间。而对于大小较大的undo log会使用多个undo page来对该undo log进行存储。undo page reuse只会发生在segment的第一个page
#### 文件组织方式
在同一时刻一个undo segment只属于一个事务一个undo segment无法同时被多个事务共享。每当事务开启时都会获取一个undo segment故而在多个事务并行的运行时需要多个undo segment。
##### rollback segment
在innodb中每个rollback segment中包含了1024个undo slot而每个undo tablespace最多包含128个rollback segment。
rollback segment header中包含了128个slot每个slot包含4字节并且都指向`某个undo segment的第一页`
undo slot的数量会影响innodb数据库中的事务并行程度
### purge ### purge
`t`中,`a`为聚簇索引,`b`为辅助索引若执行如下sql `t`中,`a`为聚簇索引,`b`为辅助索引若执行如下sql
```sql ```sql