• 14.6.3.4 Configuring InnoDB Buffer Pool Prefetching (Read-Ahead) 配置InnoDB Buffer pool 预取


    14.6.3.4 Configuring InnoDB Buffer Pool Prefetching (Read-Ahead) 配置InnoDB Buffer pool 预取
    
    一个预读请求是一个I/O 请求异步预取多个pages到buffer pool.
    
    
    预估那些Pages 马上会被需要。 请求把所有的Pages 到一个extent.
    
    InnoDB  使用2种预读算法来改善I/O性能
    
    
    线性的预读是一种技术是预测哪个page 可能马上被需要在buffer pool中被顺序访问的pages.
    
    你控制什么时候InnoDB 执行一个预读操作通过调整 顺序page访问的数量 需要出发一个异步读请求,
    
    使用配置参数innodb_read_ahead_threshold。
    
    mysql> show variables like '%innodb_read_ahead_threshold%';
    +-----------------------------+-------+
    | Variable_name               | Value |
    +-----------------------------+-------+
    | innodb_read_ahead_threshold | 56    |
    +-----------------------------+-------+
    1 row in set (0.00 sec)
    
    
    在这个参数被增加前,InnoDB 只会计算是否执行一个异步预取请求对于整个接下来的extent 当他读取当前extent的最后的page
    
    
    配置参数 innodb_read_ahead_threshold 控制 InnoDB 探测的灵敏度是检测顺序page访问的模式。
    
    
    如果pages的读取数量是频繁的从一个extent 是大于或者等于  innodb_read_ahead_threshold
    
    InnoDB 发起一个异步的预读操作来读取整个接下来的extent.
    
    
    innodb_read_ahead_threshold 可以设置为任何值从0-64. 默认值是56
    
    
    值越大,访问模式检查越严格。
    
    比如,如果你设置值为48,InnoDB 触发一个线性预读请求只有当48个pages 在当前的extent 已经被顺序访问。
    
    
    如果值是8,InnoDB 触发一个异步预读 即使 只有8个pages 在extent被顺序访问。
    
    
    随机预读是一种技术预测页面可能被马上需要机遇已经在buffer pool里存在的pages,
    
    
    不管 那些pages被读取的顺序。

  • 相关阅读:
    4.9 省选模拟赛 圆圈游戏 树形dp set优化建图
    C#异步编程の-------异步编程模型(APM)
    C#异步编程の----Threadpool( 线程池)
    C#の----Func,Action,predicate在WPF中的应用
    C#常见委托のdelegate定义,Func,Action,Predicate总结
    c++のmap的遍历
    C#深度学习の----深拷贝与浅拷贝
    NSIS学习记录の----查找注册表某个键是否存在
    WPFの操作文件浏览框几种方式
    C#Url处理类
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13350072.html
Copyright © 2020-2023  润新知