Skip to main content

几种缓存

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缓存的是二级索引的数据页(索引页)