一条SQL查询语句是如何执行的?(17)
与此类似 , InnoDB 的 redo log 是固定大小的 , 比如可以配置为一组 4 个文件 , 每个文件的大小是 1GB , 那么这块“粉板”总共就可以记录 4GB 的操作 。 从头开始写 , 写到末尾就又回到开头循环写 , 如下面这个图所示 。
write pos 是当前记录的位置 , 一边写一边后移 , 写到第 3 号文件末尾后就回到 0 号文件开头 。 checkpoint 是当前要擦除的位置 , 也是往后推移并且循环的 , 擦除记录前要把记录更新到数据文件 。
write pos 和 checkpoint 之间的是“粉板”上还空着的部分 , 可以用来记录新的操作 。 如果 write pos 追上 checkpoint , 表示“粉板”满了 , 这时候不能再执行新的更新 , 得停下来先擦掉一些记录 , 把 checkpoint 推进一下 。
有了 redo log , InnoDB 就可以保证即使数据库发生异常重启 , 之前提交的记录都不会丢失 , 这个能力称为crash-safe 。
要理解 crash-safe 这个概念 , 可以想想我们前面赊账记录的例子 。 只要赊账记录记在了粉板上或写在了账本上 , 之后即使掌柜忘记了 , 比如突然停业几天 , 恢复生意后依然可以通过账本和粉板上的数据明确赊账账目 。
推荐阅读
- Uzi|LOL近年来两大转会假新闻!一条比一条离谱好笑
- 手机游戏|DNF关服了会有什么补偿?玩家讨论出四种可能,最后一条最靠谱
- 一条小团团|瘦身成功的小团团,只打算邀女粉庆生,结果多了8个男粉
- 一条小团团|网红「一条小团团」不惧恶评!大方露脸,发布视频!自称:从未被认出过
- 梦幻西游|梦幻西游:翻出一条10级双蓝字腰带,引来土豪哄抢,价值飙升10亿
- 超激斗梦境|《超激斗梦境》人物每一条属性介绍
- 一条小团团|鱼死网破?小团团发文暗示被背锅,公会的问题和她没关系
- 一条小团团|虎牙法神带小团团开黑,振刀成功后,小团团激动:我负责捡武器
- 云顶之弈|云顶之弈:开局三龙族,是天赐还是陷阱?不要一条道走到黑!
- 打野|新版本T0刺客突然诞生,出名刀可以再获得一条命,天克百里玄策!