14.6.5 Configuring InnoDB Change Buffering 配置InnoDB Change Buffering

来源:互联网 发布:vendor.bundle.js文件 编辑:程序博客网 时间:2024/06/05 22:50
14.6.5 Configuring InnoDB Change Buffering  配置InnoDB Change Buffering当插入,更新,和删除操作在表上执行, 索引列的值(特别是 secondary keys的值)经常是在无序的状态, 需要大量的I/O 来更新secondary indexesInnoDB 有一个change buffer 来caches changes 到secondary index的条目当相关的page 不是在buffer pool里。这样避免了昂贵的I/O操作通过不是立即从磁盘读近到内存里。buffered changes 是被合并当page 是加载到buffer pool,更新的pages 是随后刷新到磁盘。InnoDB 主要线程合并Buffer changes 当server 是空闲的时候因为它可以减少磁盘读和写, change buffer 功能是很有价值的对于 I/O密集型的负载然而,change buffer 占用了一部分的buffer poll,降低了可用内存来cache data pages.如果工作集几乎填满整个buffer pool,或者如果你的表有相对较少的secondary indexes, 则可以禁用change buffering.如果 工作占用整个Buffer, change buffering不会产生额外的负载, change buffer 只是应用于pages 不在buffer pool里的你可以控制extent InnoDB 执行change buffering 使用 innodb_change_buffering  配置参数。你可以启用或者禁用buffering用于插入,删除操作(当index 记录是标记为删除)purge 操作(当index records 是物理删除)一个更新操作是 insert和delete的组合 默认innodb_change_buffering value 是allmysql> show variables like '%innodb_change_buffering%';+-------------------------+-------+| Variable_name           | Value |+-------------------------+-------+| innodb_change_buffering | all   |+-------------------------+-------+1 row in set (0.00 sec)

0 0