CheckPoint手艺

数据库每次更新数据的时刻都要将脏页刷新会磁盘,同时在事务提交中要先写重做日志,再修改页;在以上过程中发生宕机的,数据若何恢复,脏页刷新到哪里,为了解决这些问题,提出了checkPoint手艺。

当数据库宕机的时刻,数据库不需要重做左右日志,由于CheckPoint之前的页都已经刷新回磁盘,故数据库只需要对checkPoint之后的重做日志举行恢复,这样大大缩短了数据库恢复时间。

当缓冲池不够用的时刻,凭据LRU算法会溢出最近最少使用的页,若这些页为脏页,那么需要执行CheckPoint,将脏页刷新回磁盘。

重做日志不可用的时刻,选择Flush列表中的脏页刷新回磁盘。

Master Thread 事情模式

Master Thread具有最高的线程优先级别。内部由多个循环组成:主循环(loop)、后台循环(backgroup loop)、刷新循环(flush loop)、暂停循环(suspend loop)。Master Thread会凭据数据库的运行状态在四种循环中切换状态。

1.0版本之前

每秒操作:

日志缓冲刷新到磁盘,纵然这个事务还没提交(总是)

合并插入缓冲(可能)

至多刷新100个InnoDB的缓冲池中的脏页到磁盘(可能)

若是没有当前用户流动,则切换到backgroup loop(可能)

每10秒的操作:

刷新100个脏页到磁盘(可能)

合并至多5个插入缓冲(总是)

将日志缓冲刷新到磁盘(总是)

删除无用的undo页(总是)

刷新100个或者10个脏页到磁盘(总是)

backgroup loop执行的操作:

删除无用的undo页(总是)

合并20个插入缓冲(总是)

跳回到祝循环(总是)

不停刷新100个页直到相符条件(可能,跳转到flush loop中完成)

1.2版本之前

在1.0版本基础上举行了部门优化:

合并插入缓冲时,合并插入缓冲的数目可以设置。(innodb_io_capacity值的5%)

在从缓冲区刷新脏页的时刻,刷新脏页的数目可以举行设置。(innodb_io_capacity值)

1.2版本

为了减轻Master Thread 的压力,将刷新页的操作从Master Thread线程星散到一个单独的Page Cleaner Thread中。同时在InnoDB闲置的时刻,会执行每10秒的操作,其余的时间执行每秒的操作。

原文链接:https://www.cnblogs.com/wangb0402/p/12712276.html

本站声明:网站内容来源于网络,若有侵权,请联系我们,我们将及时处理。

mysql master thread_Mysql的InnoDB引擎-3.CheckPoint手艺、Master Thread相关推荐

  1. Linux环境编译安装Mysql以及补装innodb引擎方法

    mysql安装  5.6以后可能会收费,所以选择5.1 以下从台湾中山大学镜像下载 1.首先要安装C++编译环境 # yum install gcc-c++ 2.下载解压 # wget http:// ...

  2. mysql源码分析——InnoDB引擎启动分析

    一.InnoDB启动 在MySql中,InnoDB的启动流程其实是很重要的.一些更细节的问题,就藏在了这其中.在前面分析过整个数据库启动的流程,本篇就具体分析一下InnoDB引擎启动所做的各种动作.在 ...

  3. mysql使用混合引擎如何,mysql – 使用MyISAM和InnoDB引擎的数据库的一致逻辑备份...

    我有一个关于MySQL数据库的逻辑备份的问题 同时使用MyISAM和InnoDB. mysqldump实用程序支持以下两个选项: > –single-transaction – 通过转储单个事务 ...

  4. mysql中的擎天柱---InnoDB引擎

    我们知道mysql常用的引擎有InnoDB和MyISAM,在mysql5.5前默认引擎是MySAM在mysql5.5之后默认引擎是InnoDB InnoDB记录存储结构 InnoDB页简介 InnoD ...

  5. mysql为什么选innodb_为什么现在的MySQL都要使用innoDB引擎-Go语言中文社区

    1.MyISAM MyISAM是mysql5.1及之前版本的默认引擎,很久未被更新. 使用表级锁, 如果数据量大,一个插入操作锁定表后,其他请求都将阻塞. 支持全文索引 支持查询缓存保存表的总行数,使 ...

  6. mysql锁机制(Innodb引擎)

    InnoDB实现了两种类型的行锁. 共享锁(S):允许一个事务去读一行,阻止其他事务获得相同的数据集的排他锁. 排他锁(X):允许获得排他锁的事务更新数据,但是组织其他事务获得相同数据集的共享锁和排他 ...

  7. mysql innodb count_MySQL下INNODB引擎的SELECT COUNT(*)性能优化及思考

    正 文: MySQL下INNODB引擎的SELECT COUNT(*)性能优化及思考 最近有项目有高并发需求,服务器采用负载均衡,数据库采用阿里云的RDS MYSQL,16核64G内存,连接数:160 ...

  8. mysql断电不受影响db引擎_一次服务器断电,造成innodb引擎表(日志表)损坏的解决办法...

    1.mysql日志报错 innodb引擎提示数据库没有正常关闭,报innodb错误180112  0:49:28  InnoDB: Database was not shut down normall ...

  9. MySQL中InnoDB引擎对索引的扩展

    摘要:InnoDB引擎对索引的扩展,自动追加主键值及其对执行计划的影响. MySQL中,使用InnoDB引擎的每个表,创建的普通索引(即非主键索引),都会同时保存主键的值. 比如语句 CREATE T ...

最新文章

  1. 可以获取python整数类型帮助的是什么-Python 的数值类型(整数、长整数、浮点数和复数)...
  2. T-SQL 编程之结果集循环处理
  3. nosql的数据服务_使用NoSQL实现实体服务–第2部分:合同优先
  4. [前台]---ajax返回200成功,却进入error函数的解决方法
  5. 如何在maven工程中加载oracle驱动
  6. 拳王虚拟项目公社:闲鱼操作卖资源如何赚钱?闲鱼怎么卖虚拟资源?卖什么资源赚钱?
  7. 前端ajax数据提交到服务器_详解前端如何让服务器主动向浏览器推送数据
  8. 逆向链表c语言,C语言逆向打印双向链表程序
  9. 源码编译安装screen
  10. STM32---FLASH闪存
  11. C# 使用SharpGL-Perspective和LookAt
  12. 学习型组织的思维方式:保持努力,终身成长!
  13. 图片实现水平垂直居中的方法
  14. C++关于引用的分析
  15. Spring框架-AOP
  16. [渝粤教育] 西南科技大学 统计学原理 在线考试复习资料(1)
  17. 每日一题 2019/4/8
  18. 从HTTP状态 301,302,200 来看页面跳转
  19. 【电影】X战警天启HDTC版免费观看英文中字字幕
  20. 七星配资有机硅、碳交易爆发

热门文章

  1. 用 JavaScript 实现手势库 — 手势动画应用【前端组件化】
  2. 《Modelica教程》by Fritzson 导言部分
  3. Unity3D开发之----将预设体Prefab压缩成AssetBundle文件
  4. HTML静态网页作业——基于html+css+javascript+jquery+bootstarp响应式成都家乡介绍网页...
  5. 第二节 物料清单(BOM)
  6. 【转】十大顶级奢侈品服装品牌
  7. 浅谈社交行业风控如何做以及黑产危害
  8. 流浪日记无限金币html,流浪日记无敌版金钱版
  9. 使用JACOB给WORD添加水印
  10. 原生app开发的优缺点