doc: 阅读undo log文档
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user