change buffer(更改缓冲区)是mysql对普通索引写操作做的优化,当要进行写操作的数据不在buffer pool中,则会将写操作记录到change buffer中,达到降低磁盘写入频率的目的。
刷盘时机
1.后台线程定期进行merge数据。
2.mysql正常关闭。
3.访问change buffer中数据。
相关参数
innodb_change_buffering:控制哪些操作可以写入change buffer,该参数有如下六种值。
innodb_change_buffering | 写入change buffer时机 |
all | 所有写操作都写入 |
none | 所有写操作都不写入 |
inserts | insert语句写入 |
deletes | delete语句写入 |
changes | insert、delete语句写入 |
purges | 后台发生的物理删除操作 |
innodb_change_buffer_max_size:change buffer占buffer pool 大小,默认为25%