doc: 阅读mysql文档

This commit is contained in:
asahi
2025-06-30 00:35:19 +08:00
parent 8e90e58987
commit 26d4122be9
2 changed files with 53 additions and 6 deletions

View File

@@ -331,13 +331,9 @@ checkpoint解决了如下问题
redo log类似循环队列checkpoint之前的位置都已经被刷新到磁盘中可以被覆盖使用。如果当redo log文件中所有的内容都未被刷新到磁盘中那么此时会强制触发checkpoint。
### LSN
checkpoint代表的是`最后被写入到磁盘文件中的变更`通过LSN来进行表示
LSN(log sequence number)为日志序列号, 是一个全局单调递增的64位整数`类似于innodb内部的逻辑时钟是全局唯一的`
LSN为Log Sequence Number该值不断递增代表了和`redo log`中操作记录相关的时间点。LSN代表的时间点和事务的开始和结束时间并不相关LSN可以处于一个或多个事务的中间
LSN在innodb内部被使用用于`crash recovery`和管理缓冲池。LSN长度为8字节
> 位于`checkpoint`之前的变更都已经被写入到磁盘中
LSN随着redo log的不断产生而单调递增。当发生数据的修改时会生成redo log此时LSN也会增加
### Fuzzy Checkpoint
innodb中实现了fuzzy checkpoint机制会基于小批量small batches来将buffer pool中的页刷新到磁盘中。`并不需要在一次batch中将buffer pool中的页都刷新到磁盘中否则checkpoint过程会中断用户的sql语句处理`