Mysql InnoDB存储引擎【三】Change Buffer

一、Change Buffer架构图

在这里插入图片描述

二、什么是ChageBuffer

change buffer是一种特殊的数据结构,用来缓存被修改的二级索引,稍后当其他读操作将页面加载到缓冲池时,这些更改将被合并。
change buffer是缓冲区中的一部分,与聚集索引不同,二级索引通常是非惟一的,插入二级索引的顺序相对随机。类似地,删除和更新可能会影响不在索引树中相邻位置的二级索引页。稍后,当其他操作将受影响的页读入缓冲池时,合并缓存的更改,可以避免从磁盘将辅助索引页读入缓冲池所需的大量随机I/O访问。

三、change buffer 作用

当在表上执行INSERT、UPDATE和DELETE操作时,索引列的值(尤其是二级索引的值)通常是无序的,需要大量的I/O来更新二级索引。当相关页不在缓冲池中时,changebuffer缓存将要更改的为二级索引条目,从而通过不立即从磁盘读取页来避免昂贵的I/O操作。在将页面加载到缓冲池时合并已缓冲的更改,更新后的页面稍后刷新到磁盘。InnoDB主线程会在服务器几乎空闲或者慢关机的时候合并缓存的更改。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值