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 命令显示信息来帮助你预估 预读算法的有效性

14.4.3.4 Configuring InnoDB Buffer Pool Prefetching (Read-Ahead) 配置InnoDB Buffer pool 预读的更多相关文章

  1. 14.6.3.5 Configuring InnoDB Buffer Pool Flushing

    14.6.3.5 Configuring InnoDB Buffer Pool Flushing InnoDB 执行某些任务在后台, 包括脏叶的刷新(那些已经发生改变的pages 但是没有写入到数据文 ...

  2. 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/ ...

  3. 14.4.3.5 Configuring InnoDB Buffer Pool Flushing 配置InnoDB Buffer Pool 刷新:

    14.4.3.5 Configuring InnoDB Buffer Pool Flushing 配置InnoDB Buffer Pool 刷新: InnoDB执行某些任务在后台, 包括flush 脏 ...

  4. 14.6.3.2 Configuring Multiple Buffer Pool Instances 配置多个Buffer Poll 实例:

    14.6.3.2 Configuring Multiple Buffer Pool Instances 配置多个Buffer Poll 实例: 对于系统有多个buffer pools 在多个字节范围, ...

  5. 14.4.3.2 Configuring Multiple Buffer Pool Instances 配置多个buffer pool 实例:

    14.4.3.2 Configuring Multiple Buffer Pool Instances 配置多个buffer pool 实例: 对于系统 buffer pool 有多个G的范围, 把b ...

  6. 14.6.8 Configuring the InnoDB Master Thread IO Rate 配置InnoDB 主线程IO 速率:

    14.6.8 Configuring the InnoDB Master Thread IO Rate 配置InnoDB 主线程IO 速率: 主线程 在InnoDB 是一个线程 执行各种任务在后台. ...

  7. 14.6.5 Configuring InnoDB Change Buffering 配置InnoDB Change Buffering

    14.6.5 Configuring InnoDB Change Buffering 配置InnoDB Change Buffering 当插入,更新,和删除操作在表上执行, 索引列的值(特别是 se ...

  8. 14.4.8 Configuring the InnoDB Master Thread IO Rate 配置InnoDB Master Thread I/O Rate

    14.4.8 Configuring the InnoDB Master Thread IO Rate 配置InnoDB Master Thread I/O Rate 主的master thread ...

  9. 14.4.5 Configuring InnoDB Change Buffering 配置InnoDB Change Buffering

    14.4.5 Configuring InnoDB Change Buffering 配置InnoDB Change Buffering 当INSERT,UPDATE,和删除操作在表上操作, 索引列的 ...

随机推荐

  1. CentOS6.5+php5.3听云安装过程

    听云安装过程请参考听云安装指导页面:http://doc.tingyun.com/help/html/doc/server_novice.html 根据自己的服务器系统和语言包下载对应的 安装包 安装 ...

  2. html+css实现图片的层布局

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. JVM-如何判断一段数据是真正的数据,还是对象的引用

    JVM 判断一段数据到底是数据还是引用类型,首先要看JVM选择用什么方式.通常这个选择会影响到GC的实现. 一.保守式 如果JVM选择不记录任何这种类型的数据,那么它就无法区分内存里某个位置上的数据到 ...

  4. new Handler().postDelayed() 延迟intent跳转

    原文地址http://blog.csdn.net/x605940745/article/details/19401549 new Handler().postDelayed(new Runnable( ...

  5. Beginning MyBatis 3 Part 2 : How to Handle One-to-Many and One-to-One Selects

    One of the latest MyBatis feature is the ability to use Annotations or XML to do One-to-One or One-t ...

  6. Matlab中.*和./详解

    1.概念 .*和./用于矩阵相乘或者矩阵相除,分别表示矩阵中对应元素相乘和对应元素相除. 2.实例:

  7. C++中实现 time_t, tm 相互转换

    time_t -> tm: localtime tm -> time_t: mktime time_t curTime; time(&curTime); dwCurTime = c ...

  8. Qt5窗口设计

    主窗口设计通常是应用程序界面设计的第一步,主窗口主要分为窗口标题,菜单栏,工具栏和状态栏这四个部分,只要在程序设计中分别对四个项目进行设计就可以实现主窗口的编程了.在下面的例子中,我们就以一个打开文件 ...

  9. Maven坐标 groupId artifactId version packaging classifier name

    groupId定义项目属于哪个组,这个组往往和项目所在的组织或公司存在关联.譬如在googlecode上建立一个名为myapp的项目,那么groupId就应该是com.googlecode.myapp ...

  10. HDU2795 Billboard 【线段树】+【单点更新】

    Billboard Time Limit: 20000/8000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...