• 14.3.5 Configuring InnoDB Change Buffering


    14.3.5 Configuring InnoDB Change Buffering

    14.3.5.1 Configuring the Change Buffer Maximum Size

    当 INSERT, UPDATE, and DELETE操作在表上执行, 索引列的值(特别是secondary keys的值)

    是经常在一个不排序的顺序,需要大量的I/O 带来给secondary indexes

    InnoDB 有一个change buffer 用于caches 对secondary index I/O操作的缓存

    通过不理解读取磁盘的页。缓存的改变是被合并当页被加载到buffer,

    更新的页随后刷新到磁盘。InnoDB 主thread 合并缓存的changes 当server是空闲的时候,或者是一个缓慢的关机。

    因为它可以导致更少的磁盘读取和写入,change buffer 功能是很宝贵的对于负载是I/O密集型的,

    比如有大量的DML操作 比如批量插入。

    然而,change buffer 占用buffer pool的一部分,降低了可用内存用于cache 数据页。

    如果工作集总是适合Buffer pool, 或者你的表有相对较少的secondary indexes.

    禁用change buffer 是有用的, 如果工作集占用整个在buffer ,changes buffer 不利用额外的负载,

    因为它只使用与那些不在buffer pool的pages.

    你可以控制extent ,InnoDB 执行change buffering 使用innodb_change_buffering 配置参数

    mysql> show variables like ‘%innodb_change_buffering%’;
    +————————-+——-+
    | Variable_name | Value |
    +————————-+——-+
    | innodb_change_buffering | all |
    +————————-+——-+
    1 row in set (0.00 sec)

    你可以启用和禁用buffering 用于 inserts, delete operations(当index records 初始标记用于删除)

    和purge 操作(当index records 是物理删除的)

    一个update 操作是一个insert 和delete 组合。默认是all

    允许的innodb_change_buffering 值包括:

    1.all

    默认值:buffer inserts, delete-marking operations, and purges.

  • 相关阅读:
    TCL 双引号和花括号的区别
    在Vivado中调用ModelSim生成FSM的状态转移图
    基于配置文件的方式来配置AOP
    Spring MVC_Hello World
    重用切点表达式
    Spring MVC概述(2)
    Shiro_DelegatingFilterProxy
    Shiro-工作流程
    切面的优先级
    Shiro-集成Spring
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351182.html
Copyright © 2020-2023  润新知