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. 02HTML标签(上)
  2. Windows XP环境下Apache2.2.21和Tomcat7.0.26下的整合
  3. Python爬虫学习系列教程
  4. LeetCode题解之Reorder List
  5. pytest测试实战pdf_Pytest+Allure美化测试报告
  6. 【计算机网络笔记】因特网概述
  7. Hadoop三大发行版本简单介绍
  8. Python 用sympy做高数题,不定积分、定积分、极限、求导样样精通!
  9. mac 安装typescript
  10. 三相维也纳pfc,开关电源,三相AC输入无桥pfc±400vDC输出
  11. TypeError: Cannot read property 'gizmo' of null 的解决方案
  12. 【Unity】Unity 脚下光圈
  13. php sleep usleep,php暂停函数 sleep() 与 usleep() 函数的区别
  14. opencv 处理黑夜_Python基于OpenCV的固定位置半透明水印去除两种方案
  15. 【送书福利-第七期】《分布式中间件核心原理与RocketMQ最佳实践》
  16. mysql按年月排序group by升序_排序-在MySQL中按GROUP BY名称之前的日期和时间排序
  17. 分享一篇企鹅的暑期实习生技术面经验
  18. 【ESP32 S3 开发】基于I2S协议驱动INMP441数字麦克风 实现语音采集
  19. 铁电存储器常见问题解决方案
  20. matlab卡诺循环,制冷课后习题分解

热门文章

  1. 快递查询API接口对接案例(顺丰、圆通、中通、德邦、天天)
  2. 北工大计算机学院大赛,做北工大的竞赛咖!这些信息你一定不能错过!
  3. 计算机分析桁架受力,日光温室桁架式拱架的受力分析.doc
  4. rhel6.5搭建mantis时报错
  5. 优秀工程师应该具备哪些素质_作为现代工程师应具备的素养
  6. IE8/9下,text-indent对css描绘三角形的影响
  7. 手机号归属地能改吗?支付及通讯行业怎么看?
  8. I2C中的10bit地址读写
  9. SQL:with as用法
  10. android 模拟物品移动