14.6.3.3 Making the Buffer Pool Scan Resistant  

相比使用一个严格的LRU算法,InnoDB 使用一个技术来最小化数据总量 带入到buffer pool 而不被再次访问。

目标是确保频繁访问的热的Pages停留在buffer pool里,

即使预读和全表扫描带入到新的blocks 以后不会再被访问

新读取的blocks 是插入到LRU列表的中间, 所有新读取的Pages是插入在默认是3/8的位置lru 列表的尾部。

pages会被移动到列表的前面(最常使用的尾部) 当它们被访问在buffer pool 对于首次访问。

这样, pages 不会再访问 不会让他到LRU列表的全面部分,

很快淘汰在一个严格的LRU 方法。

这种安排把LRU列表分成2个部分, 插入点的下面被认为是老的 会被驱逐

对于一个InnoDB buffer pool 内存网络的活动,指定LRU 算法

你可以控制插入点在LRU列表中,选择是否InnoDB 应用相同的优化对于带入到Buffer pool通过表或者索引扫描。

配置参数innodb_old_blocks_pct 控制了old blocks的比例在LRU列表里。

默认值是37, 相应的比例是3/8.

优化 保持Buffer pool 避免被搅动通预读可以避免类似问题由于表或者索引扫描。

在这些扫描中,一个数据页通常被访问很少的时间 不会再次被访问。

配置参数innodb_old_blocks_time 指定了时间单位毫秒 在第一次访问后一个page 可以被访问不需要移动到前端(最常使用列表的尾端)

增加这个值 让更多的blocks 看起来更快的age out

 innodb_old_blocks_pct and innodb_old_blocks_time 都是动态的

因此那些参数的影响可以基于你的硬件配置,你的数据和你的负载的细节

当扫描大的表不能整个放进Buffer pool,设置 innodb_old_blocks_pct 为一个小的值

让数据只读一次的消耗很大一部分buffer pool.

比如,你设置 innodb_old_blocks_pct=5 限制了这个数据只读一次到buffer pool的5%

14.6.3.3 Making the Buffer Pool Scan Resistant的更多相关文章

  1. 14.4.3.3 Making the Buffer Pool Scan Resistant

    14.4.3.3 Making the Buffer Pool Scan Resistant 让Buffer Pool 扫描 相比使用一个严格的LRU算法, InnoDB 使用一个技术来最小化数据的总 ...

  2. 14.4.3.1 The InnoDB Buffer Pool

    14.4.3.1 The InnoDB Buffer Pool 14.4.3.2 Configuring Multiple Buffer Pool Instances 14.4.3.3 Making ...

  3. 14.6.3.5 Configuring InnoDB Buffer Pool Flushing

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

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

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

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

  6. 14.6.3.1 The InnoDB Buffer Pool

    14.6.3.1 The InnoDB Buffer Pool InnoDB 保持一个存储区域被称为buffer pool 用于cache数据和索引在内存里, 知道InnoDB buffer pool ...

  7. 14.4.3.6 Fine-tuning InnoDB Buffer Pool Flushing 微调 InnoDB Buffer Pool 刷新:

    14.4.3.6 Fine-tuning InnoDB Buffer Pool Flushing 微调 InnoDB Buffer Pool 刷新: innodb_flush_neighbors an ...

  8. 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 脏 ...

  9. 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 ...

随机推荐

  1. Linux Apache SVN

    yum install mod_dav_svn subversion  httpd mkdir /var/www/svnsvnadmin create /var/www/svn/puppetcd /v ...

  2. Hibernate占位符警告:use named parameters or JPA-style positional parameters instead.

    Hibernate占位符警告:use named parameters or JPA-style positional parameters instead. >>>>> ...

  3. 移动设备日期选择插件(基于JQUERY)

    上周花了2个小时写的一个日期选择插件,比较适合移动端的设备.先看个效果图吧.如果刚好是你需要的就往下吧,不需要的也可以继续..... 其实网络上已经有的了类似的成熟插件,比如基于mobiscroll, ...

  4. web程序记录当前在线人数

    在页面上显示当前在线人数 效果: 1.Global.asax文件: <%@ Application Language="C#" %><%@ Import Name ...

  5. ECshop--搜索模块细究

    ecshop细究 今天看了下ecshop搜索这块,前台数据一直到后台查询再返回前台.大致是这么个过程,首先,在index.dwt文件内,body下面引入了 <!-- #BeginLibraryI ...

  6. jquery判断div是否显示或者隐藏

    jquery判断div是否显示或者隐藏 很多时候会要判断一个div是不是显示着,没显示要怎么处理,显示的如何处理: 方法很简单,选择到你要判断的div,再用is(':hidden')判断是否隐藏:或者 ...

  7. 反射+javacsv+scv文件构建资源获取

    1.反射之前已经写过,大家可以在http://www.cnblogs.com/myadmin/p/5282628.html中大概了解下.同时请大家指正. javacsv.jar:java中用来处理cs ...

  8. LINQ 多条件写法

    源代码: string depAll = (ddl_dep1.SelectedValue == "") ? "" : ddl_dep1.SelectedValu ...

  9. string的一些更改发

    /* String 类:  1.1字符串的长度    int c =对象.length();  1.2字符串某个字符的位置  int index=对象.indexOf("字母")  ...

  10. X-Plane飞行模拟资源整理一

    计划开一个博客整理一下飞行仿真软件二次开发的相关内容 预计将陆续介绍X-Plane.Microsoft Flight Simulator.FlightGear三个主流飞行模拟器. 此处为目录(占坑,随 ...