数据库原理: Change Buffer 是干什么的?

数据库原理: Change Buffer 是干什么的?

redo log 主要节省的是随机写磁盘的 IO 消耗(转成顺序写),而 change buffer 主要节省的是随机读磁盘的IO消耗。

实例:插入过程

插入语句

insert into t(id,k) values(id1,k1),(id2,k2);

假设当前 k 索引树的状态,查找到位置后,K1 所在的数据页在内存(InnoDB buffer pool)中,K2 所在的数据页不在内存中。

image

包含 几个部分:
内存、redo log(ib_log_fileX)、数据表空间(t.idb)、系统表空间(ibdata1)

  1. Page 1 在内存中,直接更新内存。
  2. Page 2 没有在内存中,就在内存的 change buffer 区域,记录“我要往 Page2 插入一行”这个信息。
  3. 将上述两个动作记录 redo log(图中3和4) 。

实例:读取过程

查询语句:

select * from t where 
wangxiaoming CSDN认证博客专家 架构 Spring Boot Redis
博客是很好的总结和记录工具,如果有问题,来不及回复,关注微信公众号:程序员开发者社区,获取我的联系方式,向我提问,也可以给我发送邮件,联系 1275801617@qq.com
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页
实付 19.89元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值