zoukankan      html  css  js  c++  java
  • 14.4.3.4 Configuring InnoDB Buffer Pool Prefetching (Read-Ahead) 配置InnoDB Buffer pool 预读

    14.4.3.4 Configuring InnoDB Buffer Pool Prefetching (Read-Ahead)   配置InnoDB Buffer pool 预读
    
    一个预读请求 是一个I/O请求来预取多个页 在buffer poo里 一般的,
    
    
    预计 那些页面很快会被需要。 请求把所有的pages 到一个extent.
    
    InnoDB 使用2种预读算法来改善性能。
    
    
    线性预读 是一种技术预测什么页面可能被马上需要基于在buffer 中的pages 被顺序访问。
    
    
    你控制 当InnoDB 执行一个预读操作通过调整顺序page 访问的数目来触发异步请求,
    
    
    使用配置参数 innodb_read_ahead_threshold。
    
    
    在这个参数增加前,InnoDB 只会计算是否执行一个异步预取请求对于整个next extent 
    
    
     innodb_read_ahead_threshold 配置参数 控制InnoDB的敏感程度是检测顺序page 访问的模式。
    
    
    如果按顺序读取的page的数量从一个extent 是大于或者等于innodb_read_ahead_threshold,
    
    
    InnoDB 初始一个异步的预读操作 读取整个接下来的extent.
    
    
    mysql> show variables like '%innodb_read_ahead_threshold%';
    +-----------------------------+-------+
    | Variable_name               | Value |
    +-----------------------------+-------+
    | innodb_read_ahead_threshold | 56    |
    +-----------------------------+-------+
    1 row in set (0.00 sec)
    
    innodb_read_ahead_threshold  可以设置为0-64 默认值是56.
    
    
    值越高,访问模式检查越严格。
    
    比如,你设置值为48,InnoDB 触发一个线性的预读请求只有当48个页 在当前的extent 已经被顺序访问。
    
    
    如果值为8,InnoDB 触发一个异步预读甚至只要8个pages 在extent被顺序访问。
    
    
    你可以设置这个参数的值在MySQL的配置文件,或者动态的改变它使用SET GLOBAL,需要SUPER权限
    
    
    
    随机预读 是一个技术预测 当pages 马上需要基于已经在buffer pool的pages,
    
    
    无论那些页面被顺序读取。 如果13连续的页从相同的extent 被找到,InnoDB 异步执行一个请求来
    
    获取extent里剩下的pages. 启用这个功能,设置配置变量 
    
    mysql> show variables like '%innodb_random_read_ahead%';
    +--------------------------+-------+
    | Variable_name            | Value |
    +--------------------------+-------+
    | innodb_random_read_ahead | OFF   |
    +--------------------------+-------+
    1 row in set (0.00 sec)
    
    
    SHOW ENGINE INNODB STATUS 命令显示信息来帮助你预估 预读算法的有效性
    

  • 相关阅读:
    javascript 字符串截取
    HTML5 转
    Javascript try catch finally
    C#之json字符串转xml字符串
    AspNetCore Json序列化设置
    类加载(对象创建)顺序
    线性表,线性表和链表的区别
    Implement int sqrt(int x).
    Add Binary
    Roman to Integer(将罗马数字转成整数)
  • 原文地址:https://www.cnblogs.com/zhaoyangjian724/p/6199804.html
Copyright © 2011-2022 走看看