From 3ab6dfcb4873f8e13dc4343bd61ca984d4061f8d Mon Sep 17 00:00:00 2001 From: asahi Date: Thu, 7 Aug 2025 13:35:55 +0800 Subject: [PATCH] =?UTF-8?q?doc:=20=E9=98=85=E8=AF=BBundo=20log=E6=96=87?= =?UTF-8?q?=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mysql/mysql文档/mysql_事务.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/mysql/mysql文档/mysql_事务.md b/mysql/mysql文档/mysql_事务.md index 5410afd..658be7b 100644 --- a/mysql/mysql文档/mysql_事务.md +++ b/mysql/mysql文档/mysql_事务.md @@ -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