1. 脏页,干净页

当内存数据页和磁盘数据页上的内容不一致时,我们称这个内存页为脏页;

内存数据写入磁盘后,内存页上的数据和磁盘页上的数据就一致了,我们称这个内存页为干净页。

2. 刷脏页的时机

2.1 redo log

redo  log 是循环写的,当redo log 写满了,即 write pos 追上了  checkpoint 时,此时没有空间记录 redo log,就需要将 checkpoint 向前推进,推进的这部分日志对应的脏页就需要刷入磁盘。

此时所有的更新全部阻塞,此时写性能跌为0,必须等待刷一部分脏页后才能继续更新,这种情况要尽量避免;

2.2 系统内存

当系统内存不足时,就需要将一部分数据页淘汰掉,如果淘汰的是脏页,就需要先将脏页刷入磁盘。

当淘汰的脏页过多时,会导致查询的响应时间变长;

2.3 MySQL认为空闲的时间

不存在性能问题;

2.4 MySQL正常关闭之前,会把内存中所有的脏页刷入磁盘

不存在性能问题;

3. 刷脏页的控制策略

3.1 正确服务器的IO能力

innodb_io_capacity参数表示机器的磁盘能力,根据机器能力合理设置该参数的值;

3.2 刷脏页的速度

InnoDB的刷盘速度主要参考两个参数:脏页比例和redo log 的写盘速度;

innodb_max_dirty_pages_pct是脏页比例上限,默认值为75%;

InnoDB根据当前的脏页比例算出一个值M1;

InnoDB每次写入redo log 有一个序号,根据当前序号和checkpoint之间的差值算出一个值M2;

之后引擎取M1和M2之间(M1和M2都是0-100之间的数)的较大值除以100乘以innodb_io_capacity,这就是刷脏页的速度;

3.3 刷脏页机制

当一个查询请求执行过程中需要先flush一个脏页时,如果脏页的旁边也是脏页,此时引擎会将相邻的脏页也刷掉,直到下一个数据页不是脏页为止;

该机制通过参数 innodb_innodb_flush_neighbors 控制,值为0时表示只刷自己,值为1时则有连坐效果;

mysql 查看 脏页_MySQL:刷脏页相关推荐

  1. mysql ssd 刷脏,InnoDB的刷脏机制

    Page Cleaner InnoDB 通过独立的线程将Buffer Pool中的脏页刷入存储中.这些线程称作Page Cleaner. Page Cleaner的线程数量通过系统参数--innodb ...

  2. mysql ssd 刷脏_MySQL-Innodb-批量刷脏的场景

    buf_flush_page_cleaner_coordinator协调线程的主循环主线程以最多1s的间隔或者收到buf_flush_event事件就会触发进行一轮的刷脏. 批量刷脏主要有3个场景. ...

  3. ubuntu 禁用透明大页_MySQL InnoDB 透明页压缩(Page Compression)

    MySQL InnoDB支持数据压缩,有两种数据压缩方式,第一种为表压缩,通常也称之为行格式压缩,另外一种是页压缩(Page Compression),又叫做透明页压缩(Transparent Pag ...

  4. mysql 查看编码方式_Mysql查看编码方式专题

    Mysql查看编码方式专题 一. 查看数据库的字符集 show variables like 'character\_set\_%'; 输出: +--------------------------+ ...

  5. linux mysql查看数据库编码_MySQL查看和修改字符编码的实现方法

    MySQL的默认编码是Latin1,不支持中文,要支持中午需要把数据库的默认编码修改为gbk或者utf8. 1.需要以root用户身份登陆才可以查看数据库编码方式(以root用户身份登陆的命令为:&g ...

  6. mysql查看主机名_mysql怎么看主机名

    mysql查看主机名的方法: 1.查看主机名 在Ubuntu系统中,快速查看主机名有多种方法: 在终端窗口中,主机名通常位于@符号后:root@lzyws739307453:~#,例如这个的主机名就是 ...

  7. mysql查看表备注_mysql表中如何查看备注

    mysql表中查看备注的方法:1.通过"information_schema.TABLES"语句查看所有表的注释:2.通过"information_schema. TAB ...

  8. mysql 查看索引深度_mysql 学习 - 索引深度理解

    使用索引的代价 在熟悉了B+树索引原理之后,本篇文章的主题是唠叨如何更好的使用索引,虽然索引是个好东西,可不能乱建,在介绍如何更好的使用索引之前先要了解一下使用这玩意儿的代价,它在空间和时间上都会拖后 ...

  9. mysql查看历史连接数_MySQL如何查看连接数和连接状态

    MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性.MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准 ...

  10. mysql查看数据类型命令_mysql菜鸟指南(增删查改、数据类型、常用命令)

    1.连接数据库 [root@host]# mysql -u root -p Enter password:****** 2.查看数据库 SHOW DATABASES; 3.创建数据库 mysql> ...

最新文章

  1. 基于数据融合的城市点云自动标注
  2. OpenCV学习笔记(二十六)——小试SVM算法ml OpenCV学习笔记(二十七)——基于级联分类器的目标检测objdect OpenCV学习笔记(二十八)——光流法对运动目标跟踪Video Ope
  3. kubeadm加载k8s镜像实现集群搭建
  4. 深入浅出设计模式原则之依赖倒置原则
  5. flask mysql项目模板渲染_Flask框架模板渲染操作简单示例
  6. “约见”面试官系列之常见面试题第五篇说说vuex登录信息(建议收藏)
  7. Kotlin 学习笔记08
  8. 常系数线性微分方程的直接解法-利用特征方程
  9. 求链表的倒数第m个元素
  10. key php 转小写_php字符串替换以及大写字母转小写字母
  11. .net Remoting(1)——起点,从示例做起
  12. 2022-2028全球与中国无线电远程单元市场现状及未来发展趋势
  13. Spark2.1.1中用各种模式运行计算圆周率的官方Demo
  14. 前沿Perspective | 空间转录组数据分析方法最新进展
  15. ChainZ Arena攻略+全红卡评分
  16. 记录一次数据库被黑的过程
  17. 考托福要不停的告诉自己:每临大事有静气!
  18. EXCEL中怎么把单元格中的数值提取出来?Excel提取单元格数字或某格式的字符串,支持正则式提取的绿色工具
  19. 电脑计算机怎么没有桌面显示器,如果您听不懂,请问为什么计算机显示器没有OLED屏幕?...
  20. 关于计算机的英语作文初中,关于电脑的英语作文

热门文章

  1. android捕获按键广播,Android 解决监听home键的几种方法
  2. DVWA 不跳转_20201020好软件不私藏:稀有极品神器,直接解锁VIP!!
  3. win11右键菜单和win10右键菜单修改
  4. 我那牛逼老公,创业成功但最后被辞退,仍然一毛钱股份没有拿到……
  5. GGB0/OB28/OKC7/GGB1/OBBH/OKC9FICO增强
  6. 学习笔记之 初试Linux遇到的问题
  7. 本地设置测试域名转向
  8. jQuery教程——jQuery的快速入门
  9. 在java程序中实现发送邮件的功能
  10. BZOJ 2037 [Sdoi2008] Sue的小球