doc: 阅读文档

This commit is contained in:
asahi
2025-07-07 00:39:39 +08:00
parent 26d4122be9
commit 301102efe6

View File

@@ -139,7 +139,7 @@ log buffer由log block所组成可以将log buffer看作是log block的数组
`LOG_BLOCK_FIRST_REC_GROUP`占用2个字节表示log block中第一个日志所处的偏移量。
`LOG_BLOCK-FIRST_REC_GROUP`的取值可能存在如下场景:
- 该值大小和`LOG_BLOCK_HDR_DATA_LEN`相同则代表当前block中`不包含新的日志`
- 该值大小和`LOG_BLOCK_HDR_DATA_LEN`相同则代表当前block中`不包含新的日志`即当前block中存储的存储的全是上一block中record的后续部分
下图表示`事务T1的重做日志占用762字节``事务T2的重做日志占用100字节`的场景。
@@ -157,6 +157,20 @@ LSNlog sequence number为一个`全局唯一且单调递增的64位数字
CHECKPOINT则是一个LSN值同样为64位整数代表位于`CHECKPOINT`之前所有的修改已经被持久化到数据库中,`位于CHECKPOINT之前的redo log内容可以被安全的覆盖`
##### log block tailer
log block tailer中仅由一个部分组成`LOG_BLOCK_TRL_NO`,其值和`LOG_BLOCK_HDR_NO`相同。
#### log group
log group被称为重做日志组其中包含多个redo log文件innodb中只有一个log group。
log group只是一个逻辑上的概念由多个redo log file组成。log group中每个redo log file大小相同。redo log file中存储的是redo log block`在innodb引擎运行过程中会将redo log buffer中的log block刷新到磁盘文件中。`
##### redo log buffer刷新到磁盘中的时机
redo log buffer会在如下时机将log block刷新到磁盘中
- 事务提交时
- log buffer中有一半的内存空间已经被使用时
- log checkpoint时