doc: 阅读mysql文档
This commit is contained in:
@@ -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语句处理`。
|
||||
|
||||
Reference in New Issue
Block a user