一种特殊的数据结构,用于记录二级索引中页面的更改 。这些值可能来自 DML语句。涉及更改缓冲的一组特性统称为更改缓冲,包括 插入缓冲、更新缓冲和删除缓冲。
仅当二级索引中的相关页面不在缓冲池中时,更改才会记录在更改缓冲区中。当相关索引页被带入缓冲池而相关更改仍在更改缓冲区中时,该页的更改将使用更改缓冲区中的数据应用到缓冲池(合并)中。在系统大部分空闲或缓慢关闭期间运行的清除操作会定期将新索引页写入磁盘。与将每个值立即写入磁盘相比,清除操作可以更有效地为一系列索引值写入磁盘块。
物理上,更改缓冲区是系统表空间的一部分,因此索引更改在数据库重新启动时保持缓冲。只有当页面由于某些其他读取操作而被带入缓冲池时, 才会应用(合并)更改。
存储在更改缓冲区中的数据的种类和数量由 innodb_change_buffering和 innodb_change_buffer_max_size 配置选项控制。要查看有关更改缓冲区中当前数据的信息,请使用 SHOW ENGINE INNODB STATUS命令。
以前被称为插入缓冲区。
其余相关术语
page 页面
MYSQL术语介绍:page
secondary index 二级索引
MYSQL术语介绍:secondary index
buffer pool 缓冲池
MYSQL术语介绍:buffer pool
system tablespace 系统表空间
MYSQL存储引擎InnoDB(二十七):系统表空间