change buffer: 写缓冲区,是针对于二级索引页的更新优化措施。
change Bufer作用:在进行DML操作的时候,如果请求的是辅助索引(非唯一索引)并且没有在缓冲池中,并不会立刻将磁盘页加载到缓冲池,而是在CB记录缓冲变
更,等待未来数据被读取时候,再将数据合并恢复到BP。
change Buffer占用了BP的空间,默认占用25%,最大允许占用50%,可以根据读写的业务量进行操作。应用的场景:对于写多读少的场景,页面在写完以后马上被访问到的概率是比较小的,这时使用change Buffer效果最好什么情况下进行merge?
1)访问这个数据页会出发merge。
2)系统有后台线程,定期merge。
3)在数据库正常关闭的过程中,也会执行merge.
change buffer更新流程
写缓冲区,仅适用于非唯一二级索引页,为甚么?
如果索引设置了唯一性,在进行修改时,InnoDB就必须要做唯一性校验,因此必须查询磁盘,做一次10操作。会直接将记录查询到Bufer Pool中,然后在缓冲中池中修
改,不会在CB中操作。