专栏首页程序员开发者社区数据库原理: Change Buffer 是干什么的?

数据库原理: 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 所在的数据页不在内存中。

包含 几个部分:内存、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 k in (k1, k2)

如果读语句在更新语句后不久,内存中的数据还存在,那么此时这两个读操作与系统表(ibdata1)和 redo log(ib_log_fileX)。

change buffer 读过程

change buffer 对更新过程有加速作用。如果数据页没有在内存中,会将更新操作缓存到 change buffer 中,这样就不需要从磁盘读入这个数据页,减少了 IO 操作,提高了性能。先将更新操作,记录在 change buffer 中,之后再进行 merge,真正进行数据更新。

  1. 读 Page1 的时候,Page 1 在内存,可以通过内存直接返回。
  2. 读 Page2 的时候,需要把 Page 2 从磁盘读入内存,然后应用 change buffer 中的更新操作,生成一个正确的版本返回。

本文分享自微信公众号 - 程序员开发者社区(gh_016ffe40d550),作者:猿星人

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MySQL 普通索引和唯一索引该如何选择?

    普通索引和唯一索引在查询能力上没啥差别,主要考虑对更新性能的影响,要尽量选择普通索引。接下来分析两种索引在查询语句和更新语句对性能的影响。

    王小明_HIT
  • Java虚拟机--运行时数据区与内存溢出

    存放的数据是JVM加载的类信息,常量,静态变量和编译器编译后的代码等,这里要注意的是JDK1.8之后已经将这个方法区删除了,使用元空间,metaspace代...

    王小明_HIT
  • 如何避免内存溢出和频繁的垃圾回收

    垃圾回收完成后,一般是需要进行内存碎片管理,将不连续的空闲内存移动到一起,以便空出足够的连续内存空间供后续使用。

    王小明_HIT
  • mysql学习笔记(四)普通索引还是唯一索引

    这一篇主要来分析下如何选择普通索引和唯一索引,以及他们在查询时候的原理。

    虞大大
  • Mysql如何选择唯一索引和普通索引

    相信大家对唯一索引和普通索引是有一定的了解的,那么在不同的业务场景,使用唯一索引还是普通索引呢,比如下面的场景

    小土豆Yuki
  • MySQL深入学习第九篇-普通索引和唯一索引,应该怎么选择?

    在前面的基础篇文章中,我给你介绍过索引的基本概念,相信你已经了解了唯一索引和普通索引的区别。今天我们就继续来谈谈,在不同的业务场景下,应该选择普通索引,还是唯一...

    越陌度阡
  • 普通索引和唯一索引的执行过程

    我们已经介绍过索引的结构和索引的几种优化,我们再来看一下相同语句在不同索引类型的执行过程

    matinal
  • input输入框change和blur事件区别

    blur与change事件在绝大部分的情况下表现都非常相似,输入结束后,离开输入框,会先后触发change与blur,唯有两点例外。

    Daotin
  • 北上广深差不多的薪酬,哪里过得更潇洒?

    作者 孙竞 本文为原创作品,转载需授权 有这样一群年轻人,他们即使过得异常艰苦,远离亲人,仍然义无反顾选择来北上广深打拼。北上广深哪个城市会让我们过的更潇洒一...

    CDA数据分析师
  • 用数据分析来探讨 北上广深哪个城市过得更潇洒

    北上广深,似乎已成了一个沉重的话题,它代表着无数功成名就的梦想和不知所措的未来。那里,有的是机遇与资源,与之相伴的是源源不断的压力和挑战。有这样一群年轻人,他...

    灯塔大数据

扫码关注云+社区

领取腾讯云代金券