checkpoint主要是为了解决一下问题:

1.缩短数据库的恢复时间

2.缓冲池不够用时,将脏页刷新到磁盘

3.重做日志不可用时,刷新脏页

Innodb引擎使用LSN(log sequence number)来标记日志版本。 LSN是占8个字节的数字。每个页都有LSN、重做日志也有LSN、Checkpoint也有LSN。

Innodb存储引擎内部有两种checkpoint:

1.sharp checkpoint

发生在数据库关闭时。将所有脏页刷新到磁盘。这是默认的方式,即innodb_fast_shutdown=1

mysql> show variables like 'innodb_fast_shutdown';
+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| innodb_fast_shutdown | 1     |
+----------------------+-------+
1 row in set (0.00 sec)mysql>

2.fuzzy checkpoint
数据库运行时,使用sharp checkpoint会影响数据库的可用性。
所以运行时,使用fuzzy checkpoint进行页刷新(只刷新一部分脏页,而不是刷新所有的脏页)。

Innodb中存在以下几种情况的fuzzy checkpoint:
-master thread checkpoint:

  (差不多每秒或每十秒)异步地从缓冲池的脏页列表中刷新一定比例的页到磁盘

-flush_lru_list checkpoint:

   将LRU列表尾端的页移除,Innodb要保证LRU列表中有足够的可用空闲页。在5.6中通过参数innodb_lru_depth来控制LRU列表中可用页的数量,默认是1024

mysql> show variables like 'innodb_lru_scan_depth';
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| innodb_lru_scan_depth | 1024  |
+-----------------------+-------+
1 row in set (0.00 sec)mysql>

-async/sync flush checkpoint

  重做日志不可用时,需要强制将一些页刷新到磁盘。

-dirty page too much checkpoint

  脏页太多,强制发生的检查点

mysql> show variables like 'innodb_max_dirty_pages_pct';
+----------------------------+-------+
| Variable_name              | Value |
+----------------------------+-------+
| innodb_max_dirty_pages_pct | 75    |
+----------------------------+-------+
1 row in set (0.00 sec)mysql>

脏页占75%时,强制刷新。

转载于:https://www.cnblogs.com/abclife/p/5065165.html

Inondb中的checkpoint相关推荐

  1. checkpoint技术mysql_认识MySQL中的Checkpoint技术

    1,checkpoint产生的背景 数据库在发生增删查改操作的时候,都是先在buffer pool中完成的,为了提高事物操作的效率,buffer pool中修改之后的数据,并没有立即写入到磁盘,这有可 ...

  2. java 执行ssis包_在SSIS包中使用CHECKPOINT重新启动包执行

    java 执行ssis包 In the article, SQL Server CHECKPOINT, Lazy Writer, Eager Writer and Dirty Pages in SQL ...

  3. Spark中的checkpoint机制

    一.Spark Core中的checkpoint def main(args: Array[String]) {val spark = SparkSession.builder().appName(& ...

  4. oracle中的checkpoint,Oracle checkpoint详解

    checkpoint扫盲 什么是checkpoint 在数据库系统中,写日志和写数据文件是数据库中IO消耗最大的两种操作,在这两种操作中写数据文件属于分散写,写日志文件是顺序写,因此为了保证数据库的性 ...

  5. oracle中的checkpoint,详解oracle checkpoint

    这篇文章,源于群中几位网友的疑问,故打算写这篇文章给其释疑. 1. 何为检查点?其存在的意义? 2. 检查点的有哪些分类?检查点的结构如何?什么是checkpoint queue? 通俗的将,检查点仅 ...

  6. TensorFlow中查看checkpoint文件中的变量名和对应值

    在加载模型时, 需要知道checkpoint中变量名称,一下代码可以查看TensorFlow中checkpoint文件中的变量名: #!/usr/bin/env python # -*- coding ...

  7. Postgresql杂谈 20—详解Postgresql中的Checkpoint、WAL日志和热备份恢复

    本文中,我们共同学习下Postgresql的WAL日志.WAL,是Write Ahead Log的简称,翻译过来就是预写日志,或者叫做重做日志.相信大家对数据库事务的四大特性ACID(原子性.一致性. ...

  8. pytorch 中的 checkpoint 是干嘛的?

    checkpoint 是做什么的? 模型保存.加载的方式 checkpoint 的使用 参考 模型保存.加载的方式 checkpoint 的使用 参考 https://blog.csdn.net/lx ...

  9. MySQL中Checkpoint技术

    个人读书笔记,详情参考<MySQL技术内幕 Innodb存储引擎> 1,checkpoint产生的背景 数据库在发生增删查改操作的时候,都是先在buffer pool中完成的,为了提高事物 ...

最新文章

  1. 将文件名和文件修改时间批量输出至Excel中
  2. mysql workbench画E-R图,并根据E-R生成sql(步骤超完整)
  3. WPF 实现人脸检测
  4. html树形结构_数据结构-线性表.md
  5. 方言 —— 各地方言
  6. 优先队列及BFS应用
  7. 【Window】英文系统显示中文乱码
  8. [摩斯密码表]摩斯密码对照表
  9. 免费企业邮箱注册申请免费吗?哪个好用
  10. wifi连接一段时间才能上网_Win7系统下连接wifi一段时间就自动断线怎么办【图文】...
  11. ISO认证包括哪些?
  12. IDEA如何创建XML文件并用浏览器打开
  13. 一文读懂5G R16标准究竟讲了些什么
  14. Windows窗口消息介绍
  15. QtApplets-MyHook
  16. 婚车租赁APP开发源码部署
  17. DIV+CSS 网页兼容性问题(IE6 IE7 IE8 IE9 火狐 chorm)
  18. 动态规划题目汇总(持续更新)
  19. Symbian 模拟器在Vista Win7下无法正常启动
  20. Background Matting视频抠图

热门文章

  1. poj 1985 Cow Marathon 【树的直径】
  2. yaf mysql pdo 封装_PDO 操作数据库
  3. 无类域间路由CIDR
  4. 1135 求矩形个数(宁波OJ)
  5. python后台架构Django教程——templates模板
  6. caffe:制作自己的数据集train.txt和val.txt,生成lmdb文件
  7. modelsim仿真ROM IP数据输出为0的解决办法
  8. java扫描器创建,java – 如何创建条码扫描器(Android)?
  9. Unity3D笔记 愤怒的小鸟四 实现Selelction界面
  10. 点至直线的距离和垂足点计算