MySQL InnoDB 的 Change Buffer 是什么?
Change Buffer(5.5 前叫插入缓冲 Insert Buffer):缓存对二级索引页的 DML 修改(插入/更新/删除)——当目标二级索引页不在 Buffer Pool 时,不立即读入并修改,而是记录变更(内存或磁盘),等页被读到或后台 merge 时批量应用。收益:① 减少随机 IO(不立即读索引页);② 写放大降低,批量合并。代价:异常崩溃恢复更复杂、change buffer 占内存(innodb_change_buffer_max_size,默认 25% Buffer Pool)。适用:写多读少、二级索引多、非唯一索引场景(唯一索引需立即检查冲突,不用 CB)。
一起交流
分享经验,让问题更进一步
讨论,从你的观点开始
还没有回复,欢迎补充经验或分享不同的思路。