数据库flush
干净页:内存数据写入到磁盘后,内存和磁盘上的数据页内容一致
脏页:内存数据页与磁盘数据页内容不一致
- innodb的rego log写满
此时系统会停止所有更新操作,将所有的脏页写入磁盘 - 系统内存不足
此时需要淘汰一些数据页,如果是干净页则可以复用,如果是脏页就需要flush到磁盘 - 系统空闲的时候
- 数据库正常关闭
此时会把内存的脏页都flush到磁盘上,这样下次MYSQL启动的时候,就可以直接从磁盘上读数据,启动速度会很快
控制增页的策略
- 正确定义IO能力,推荐设置为磁盘的IOPS,innodb_io_capacity
- innodb_max_dirty_pages_pct脏页比例上限,脏页比例Innodb_buffer_pool_pages_dirty/lnnodb_buffer_pool_pages_total
- innodb_flush_neighbors 控制刷脏页时是否flush该页旁边的脏页,为0则禁用