NOTE

3.9 MySQL Flush

1. 什么是Flush - 当内存数据页跟磁盘数据页内容不一致的时候,我们称这个内存页为“脏页”。内存数据写入到磁盘后,内存和磁盘上的数据页的内容就一致了,称为“干净页” - Flush就是把脏页刷入磁盘 2. Flush触发时机 - 当出现几种情况的时候会把 - redo-log写满了(尽量避免,

MySQL / Database创建于 更新于 historical

这是历史学习笔记,可能存在过时或不完整的理解。

1. 什么是Flush

  • 当内存数据页跟磁盘数据页内容不一致的时候,我们称这个内存页为“脏页”。内存数据写入到磁盘后,内存和磁盘上的数据页的内容就一致了,称为“干净页”
  • Flush就是把脏页刷入磁盘

2. Flush触发时机

  • 当出现几种情况的时候会把
    • redo-log写满了(尽量避免,会阻塞住所有的更新)
    • 内存满了
    • MySQL认为系统空间的时候(没啥影响)
    • MySQL正常关闭的时候(没啥影响)

Flush的影响

  • MySQL性能会抖动一下

3. InnoDB刷脏页的控制策略

  • innodb_io_capacity参数设置为fio -filename=$filename -direct=1 -iodepth 1 -thread -rw=randrw -ioengine=psync -bs=16k -size=500M -numjobs=10 -runtime=10 -group_reporting -name=mytest