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

640.png

包含 几个部分:内存、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,真正进行数据更新。


640.png


  1. 读 Page1 的时候,Page 1 在内存,可以通过内存直接返回。
  2. 读 Page2 的时候,需要把 Page 2 从磁盘读入内存,然后应用 change buffer 中的更新操作,生成一个正确的版本返回。
相关文章
|
1月前
|
缓存 算法 关系型数据库
Mysql(3)—数据库相关概念及工作原理
数据库是一个以某种有组织的方式存储的数据集合。它通常包括一个或多个不同的主题领域或用途的数据表。
50 5
Mysql(3)—数据库相关概念及工作原理
|
17天前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
34 2
|
5月前
|
存储 关系型数据库 MySQL
MySQL数据库进阶第六篇(InnoDB引擎架构,事务原理,MVCC)
MySQL数据库进阶第六篇(InnoDB引擎架构,事务原理,MVCC)
|
1月前
|
SQL 关系型数据库 数据库
SQL数据库:核心原理与应用实践
随着信息技术的飞速发展,数据库管理系统已成为各类组织和企业中不可或缺的核心组件。在众多数据库管理系统中,SQL(结构化查询语言)数据库以其强大的数据管理能力和灵活性,广泛应用于各类业务场景。本文将深入探讨SQL数据库的基本原理、核心特性以及实际应用。一、SQL数据库概述SQL数据库是一种关系型数据库
53 5
|
1月前
|
SQL 关系型数据库 MySQL
sql注入原理与实战(三)数据库操作
sql注入原理与实战(三)数据库操作
sql注入原理与实战(三)数据库操作
|
1月前
|
SQL 存储 Java
sql注入原理与实战(二)数据库原理
sql注入原理与实战(二)数据库原理
|
3月前
|
消息中间件 Kafka 数据库
深入理解Kafka的数据一致性原理及其与传统数据库的对比
【8月更文挑战第24天】在分布式系统中,确保数据一致性至关重要。传统数据库利用ACID原则保障事务完整性;相比之下,Kafka作为高性能消息队列,采用副本机制与日志结构确保数据一致性。通过同步所有副本上的数据、维护消息顺序以及支持生产者的幂等性操作,Kafka在不牺牲性能的前提下实现了高可用性和数据可靠性。这些特性使Kafka成为处理大规模数据流的理想工具。
82 6
|
4月前
|
存储 SQL 关系型数据库
(六)MySQL索引原理篇:深入数据库底层揭开索引机制的神秘面纱!
《索引原理篇》它现在终于来了!但对于索引原理及底层实现,相信大家多多少少都有了解过,毕竟这也是面试过程中出现次数较为频繁的一个技术点。在本文中就来一窥`MySQL`索引底层的神秘面纱!
338 5
|
4月前
|
SQL 存储 安全
SQL数据库:核心原理、应用实践与未来展望
在电子商务领域,SQL数据库用于存储商品信息、用户信息、订单信息等。通过SQL数据库,电商平台可以实现商品的快速检索、用户行为的跟踪分析、订单状态的实时更新等功能,提升用户体验和运营效率。
|
3月前
|
存储 NoSQL 关系型数据库
Web中的数据库:原理、应用与代码实现
Web中的数据库:原理、应用与代码实现
108 0