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会被移动到列表的前面(最常…
14.4.3.3 Making the Buffer Pool Scan Resistant 让Buffer Pool 扫描 相比使用一个严格的LRU算法, InnoDB 使用一个技术来最小化数据的总量,带入到buffer pool 不会被再次访问. 目的是确保频繁访问的("hot") 页停留在buffer pool里, 即使 预读和全表扫描把新的blocks 可能或者可能之后不被访问了. 新的读取的块被插入到LRU列表的中部,所有新读取的pages 是被插入到默认是 从LRU 列表尾…
14.4.3.1 The InnoDB Buffer Pool 14.4.3.2 Configuring Multiple Buffer Pool Instances 14.4.3.3 Making the Buffer Pool Scan Resistant 14.4.3.4 Configuring InnoDB Buffer Pool Prefetching (Read-Ahead) 14.4.3.5 Configuring InnoDB Buffer Pool Flushing 14.4.…
14.6.3.5 Configuring InnoDB Buffer Pool Flushing InnoDB 执行某些任务在后台, 包括脏叶的刷新(那些已经发生改变的pages 但是没有写入到数据文件)从buffer pool InnoDB 开始刷新buffer pool pages 当脏叶的比例在buffer pool 达到 低水位设置通过innodb_max_dirty_pages_pct_lwm设置 这个选项是控制 脏页的比例在buffer pool,防止 脏叶的比例超过 innodb_…
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. 你控制…
14.6.3.2 Configuring Multiple Buffer Pool Instances 配置多个Buffer Poll 实例: 对于系统有多个buffer pools 在多个字节范围, 把buffer pool 分成单独的实例可以改善并发,通过降低竞争当不同的线程读和写到cached pages. 这个功能是典型的对于系统有一个buffer pool size 多个GB范围. 多个buffer pool实例是使用 innodb_buffer_pool_instances 配置选项…
14.6.3.1 The InnoDB Buffer Pool InnoDB 保持一个存储区域被称为buffer pool 用于cache数据和索引在内存里, 知道InnoDB buffer pool 如何工作,利用它来保持频繁访问的数据在内存里, 是MYSQL 调优的一个重要方面. 你可以配置InnoDB buffer pool的各个方面来改善性能: 理想情况下,你设置buffer pool的大小为实际最大值, 留下足够的内存用于其他进程在服务器上运行而没有产生分页. buffer pool越…
14.4.3.6 Fine-tuning InnoDB Buffer Pool Flushing 微调 InnoDB Buffer Pool 刷新: innodb_flush_neighbors and innodb_lru_scan_depth 配置选项 让你微调flush处理的某些方面 对于InnoDB buffer pool.那些选项主要帮助密集写负载.对于大量的DML 活动, flush可能落后 如果它不够积极,导致在缓冲池过度使用 或者 写磁盘由于flush 可以侵蚀你的I/O能力 如…
14.4.3.5 Configuring InnoDB Buffer Pool Flushing 配置InnoDB Buffer Pool 刷新: InnoDB执行某些任务在后台, 包括flush 脏数据(那些页已经被修改了但是没有会写到磁盘) 在Buffer pool 里. InnoDB flush buffer pool pages 如果脏页的比例在buffer pool 已经大于或 innodb_max_dirty_pages_pct.者等于innodb_max_dirty_pages_p…
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 执…