14.4.5 Configuring InnoDB Change Buffering 配置InnoDB Change Buffering
当INSERT,UPDATE,和删除操作在表上操作, 索引列的值(特别是secondary keys的值)
通常是不排序的,需要真正的I/O。
InnoDB 有一个change buffer 来caches 改变到secondary index entries
当相关的page 不在buffer pool,从而避免昂贵的I/O操作不立即从磁盘读取。
buffered changes 会被合并当page 被加载到buffer pool, 更新的page 随后刷新到磁盘。
InnoDB 维护线程合并 buffered 改变当server 空闲的时候, 或者在一个slow shutdown .
因为它能使得更少的磁盘读和写,change buffer 功能是很有价值的对于负载是I/O密集型的,
比如 应用有大量的DML 比如bulk inserts:
然而, change buffer 占据了buffer pool的一部分, 降低了可用内存来cache data pages.
如果工作集几乎沾满了buffer pool,或者如果你的表有相对少的secodary indexes,
你可以关闭change buffer.
如果工作集沾满了整个buffer, change buffering 不会强加额外的负载,
因为它只应用pages 不在buffer poo里的。
你可以控制extent InnoDB 执行change buffering 使用innodb_change_buffering 配置参数。
你可以启用或者关闭 buffering 用于插入,删除操作(当index records 是最初标记为删除的)
和purge 操作( 当index record 是被物理删除)
一个update 操作是一个插入和删除的组合 默认innodb_change_buffering value is all.
innodb_change_buffering 值允许的值:
1.all
默认值: buffer inserts, delete-marking operations, and purges.
none
不buffer 任何操作
inserts
buffer insert 操作
deletes
14.4.5 Configuring InnoDB Change Buffering 配置InnoDB Change Buffering
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
【MySQL】三、InnoDB索引结构和原理
简单介绍InnoDB的主键索引和二级索引的基本结构,以及如何利用索引进行查询的,包括回表和索引覆盖的概念等
MySQL 索引 回表 索引覆盖 B+树