doc: 阅读undo log文档
This commit is contained in:
@@ -450,6 +450,16 @@ undo segment header中包含如下内容:
|
||||
##### 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 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
|
||||
表`t`中,`a`为聚簇索引,`b`为辅助索引,若执行如下sql
|
||||
```sql
|
||||
|
||||
Reference in New Issue
Block a user