zoukankan      html  css  js  c++  java
  • 14.6.5 Configuring InnoDB Change Buffering 配置InnoDB Change Buffering

    14.6.5 Configuring InnoDB Change Buffering  配置InnoDB Change Buffering
    
    
    当插入,更新,和删除操作在表上执行, 索引列的值(特别是 secondary keys的值)
    
    经常是在无序的状态, 需要大量的I/O 来更新secondary indexes
    
    InnoDB 有一个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 是all
    
    mysql> show variables like '%innodb_change_buffering%';
    +-------------------------+-------+
    | Variable_name           | Value |
    +-------------------------+-------+
    | innodb_change_buffering | all   |
    +-------------------------+-------+
    1 row in set (0.00 sec)
    

  • 相关阅读:
    IDT 信息设计工具使用
    子查询
    分组函数
    多表查询
    单行函数
    基本的sql-select语句
    final关键字的使用
    非静态代码块(非static初始化块)&静态代码块(static初始化块)
    单例模式的饿汉式实现
    static关键字的应用
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13350069.html
Copyright © 2011-2022 走看看