几年了,作为一个码农终于把MySQL日记看懂了( 五 )
- 将page2读入内存
- 依次应用change buffer中的记录 , 得到最新版数据页
- 写入redo , 之前记录的changebuffer改动 , 现在改成数据页的改动
文章插图
8.3.3 数据刷盘过程数据刷盘flush的有四种情况
- InnoDB 的 redo log 写满了 。 这时候系统会停止所有更新操作 , 把 checkpoint 往前推进 , redo log 留出空间可以继续写
- 系统内存不足 。 当需要新的内存页 , 而内存不够用的时候 , 就要淘汰一些数据页 , 空出内存给别的数据页使用 。 如果淘汰的是“脏页” , 就要先将脏页写到磁盘
- MySQL 认为系统“空闲”的时候
- MySQL 正常关闭的情况
假设数据刷盘flush的四种情况发生了一种 , 那么联系上文的过程将如下
- 将脏页从内存中刷回到数据磁盘
- 刷完后更新检查点checkpoint的值
文章插图
流程中间某个环节数据库宕机后 , 恢复具体过程 , 这些留在心里了 , 没往上去写 , 读者可以自行思考 , 不难 。
九、结尾整个文章讲了Binlog、Undo log和Redo log , 随带一提ChangeBuffer , 前面四五六七章是分讲 , 最后第八章是对整个日记相关联讲解 。 对此 , 讲到这里 , 基本上要把我要讲的已经讲完 , 内容挺多 , 有耐心可以慢慢啃 , 不懂欢迎留言!
思考环节 , 下面留下两个问题 , 欢迎大家留言解答
1、为啥Binlog没有crash-safe功能?
2、保证crash-safe为啥要用两个日记 , 不能用一个日记吗(Redo log或Binglog)?
作者: 神韵_499
原文链接:
- 纠结|硬杠红米Note9Pro?iQOO Z1跌至1575,对比之后纠结了!
- 手机基带|为了5G降低4G网速?中国移动回应来了:罪魁祸首不是运营商
- 车企|华为不造车!但任正非加了一个有效期,3年
- 峰会|这场峰会厉害了!政府企业专家媒体共议网络内容生态治理
- 培育|跨境电商人才如何培育,长沙有“谱”了
- 先别|用了周冬雨的照片,我会成为下一个被告?自媒体创作者先别自乱阵脚
- 巅峰|realme巅峰之作:120Hz+陶瓷机身+5000mAh 做到了颜值与性能并存
- 不负众望|12小时卖了30万部!Redmi Note9不负众望,卢伟冰开心了?
- 蛋壳公寓|官媒发声:绝不能让“割韭菜者”一跑了之!
- 看过明年的iPhone之后,现在下手的都哭了