几种缓存
buffer pool
存储所有可能用到的页
刷新脏页的时机
- redo log写满了
- 内存不够用了
- 定时刷新(受很多因素影响)
- 系统空闲后台刷新
- MySQL正常关闭
change buffer
tip
- 减少写数据的时候的随机读
- 合并更新,将多次更新合并成一次写入磁盘
- buffer pool里的一部分内存,默认最大50%,通过参数innodb_change_buffer_max_size设置
- 当buffer pool没有缓存某数据页,并且需要更新该数据页的时候,会用到change buffer
- 当要更新的值是唯一索引的时候,只能先从磁盘同步到buffer pool,就用不到change buffer了
- 注意change buffer缓存的是二级索引的数据页(索引页)