码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Mysql高级特性】InnoDB Checkpoint与 Redo log


    💖【Mysql高级特性】InnoDB Checkpoint概述

    • 💓 Checkpoint 技术背景
      • 💓Checkpoint 的职责与类型
      • 💓Checkpoint 主要解决的问题

    相关文章地址
    初探 InnoDB 体系架构 初探 InnoDB 体系架构

    💓 Checkpoint 技术背景


    InnoDB 对于数据的 update 和 delete 改变了 缓存池中页的记录,那么此时缓存和页的数据比磁盘的数据要新, 数据库需要将新版本的页从缓存池刷新到磁盘中。如果说每做一次更新和删除操作,就把缓存中页的数据刷新到磁盘,那么开销非常大,而且如果把缓存池中页的新版本杀心到磁盘是发生了宕机,那么数据就不能恢复了。为了避免这种情况发生,当前事务数据库都采用了 Wrte Ahead Log 策略,即当事务提交时,先写重做日志,再修改页。当数据库宕机时,可以通过重做日志来完成数据的恢复。


    💓Checkpoint 的职责与类型


    Checkpoint 的职责 将缓存池中的脏页刷回磁盘 重点在于,每次刷新多少也到磁盘,每次从哪里取脏页,以及什么时候触发 Checkpoint

    • Sharp Checkpoint 发生在数据库关闭时将所有脏页都刷回磁盘
    • Fuzzy Checkpoint 之刷新一部分脏页,而不是刷新所有脏页回磁盘
      • Master Thread Checkpoint:每秒或者10秒的频率异步刷新缓冲池的脏页到磁盘。(由Page Cleaner Thread完成)
      • FLUSH_LRU_LIST Checkpoint:缓冲池不够用时,根据LRU算法会淘汰掉最近最少使用的页,如果该页是脏页的话,会强制执行CheckPoint,将该脏页刷回磁盘(由Page Cleaner Thread完成);
      • Async/Sync Flush Checkpoint:重做日志不可用的情况,需要强制从脏页列表中选取一些脏页刷新磁盘到缓存(由Page Cleaner Thread完成)。

    💓Checkpoint 主要解决的问题


    • 缩短数据库的恢复时间
    • 缓冲池不够用将脏页刷新到磁盘
    • 重做日志不可用时,刷新脏页

    当数据库宕机时 , 数据库不需要重做所有的日志,因为CheckPoint 之前的页已经刷回磁盘,只需对checkpoint后的重做日志进行恢复。这样就大大缩短了恢复时间。

    对于 重做日志来说,没有必要让他无限增大,重做日志的设计都是循环使用的,如果数据库恢复不需要这部分日志,那么他就是可以被覆盖重用。若此时当前重做日志还需要被使用,不可以被覆盖,那么必须强制产生 Checkpoint,将缓冲池中的页至少刷新到当前重做日志的位置。

  • 相关阅读:
    Openstack云计算架构及前期服务搭建
    300. 最长递增子序列
    计算小于或等于n的非负整数区间包含的1的数量
    一体多面:哪有什么DO、BO、DTO,只不过是司空见惯的日常
    asp.net+sqlserver团购网站c#
    基于springboot+vue+mysql的新能源充电系统--前后端分离(内含源码+报告+部署教程)
    系统日志记录的最佳实践
    使用openssl生成crt证书
    C# 用泛型和反射实现对象管理
    win10任务栏卡死桌面正常的解决方法
  • 原文地址:https://blog.csdn.net/qq_44808472/article/details/126752498
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号