这个功能是在InnoDB Plugin中引入的。InnoDB刷新脏页的规则是在如下三种情况下才会把InnoDB_Buffer_Pool的脏页刷入磁盘:
当超过innodb_max_dirty_pages_pct设定的值时。
重做日志ib_logfile文件写满了以后。
机器空闲的时候。
当写操作很频繁的时候,重做日志ib_logfile切换的次数就会很频繁,只要有一个写满了,就会将脏页大批量地刷入磁盘,而这会对系统的整体性能造成不小的影响。为了避免过大的磁盘I/O,innodb_adaptive_flushing会自适应刷新,它使用了一个全新的算法,以便根据重做日志ib_logfile生成的速度和刷新频率来将脏页刷入磁盘,这样重做日志ib_logfile还没有写满时,也可以刷新一定的量。
innodb_adaptive_flushing参数是默认开启的,可动态更新。
关于innodb_adaptive_flushing参数介绍,请参见MySQL5.5手册: