14.6.5 Configuring InnoDB Change Buffering 配置InnoDB Change Buffering 当插入,更新,和删除操作在表上执行, 索引列的值(特别是 secondary keys的值) 经常是在无序的状态, 需要大量的I/O 来更新secondary indexes InnoDB 有一个change buffer 来caches changes 到secondary index的条目当相关的page 不是在buffer pool里. 这样避免了昂贵的…
14.6.2 Configuring InnoDB for Read-Only Operation 配置InnoDB只读操作 你可以查询InnoDB 表MySQL 数据目录是一个只读介质,通过启用 --innodb-read-only 配置选项在服务启动前 mysql> show variables like '%innodb-read-only%'; Empty set (0.00 sec) mysql> show variables like '%innodb_read_only%'; +…
14.4.5 Configuring InnoDB Change Buffering 配置InnoDB Change Buffering 当INSERT,UPDATE,和删除操作在表上操作, 索引列的值(特别是secondary keys的值) 通常是不排序的,需要真正的I/O. InnoDB 有一个change buffer 来caches 改变到secondary index entries 当相关的page 不在buffer pool,从而避免昂贵的I/O操作不立即从磁盘读取. buffe…
14.4.2 Configuring InnoDB for Read-Only Operation 配置InnoDB 永于只读操作: 你可以查询InnoDB 表 MySQL 数据目录是在只读介质里,通过启用--innodb-read-only 配置选项在服务器启 动时: 如何启动: 准备一个实例用于只读操作,确保所有需要的信息是被刷新到数据文件 在存储到只读介质之前. 运行server 关闭change buffering (innodb_change_buffering=0) 做一个slow…
14.6.11 Configuring Optimizer Statistics for InnoDB 配置优化统计信息用于InnoDB 14.6.11.1 Configuring Persistent Optimizer Statistics Parameters 14.6.11.2 Configuring Non-Persistent Optimizer Statistics Parameters 14.6.11.3 Estimating ANALYZE TABLE Complexity f…
14.6.8 Configuring the InnoDB Master Thread IO Rate 配置InnoDB 主线程IO 速率: 主线程 在InnoDB 是一个线程 执行各种任务在后台. 很多这些任务是I/O相关的, 比如flush dirty pages 从buffer pool或者写changes 从insert buffer 到相应的 secondary indexes. 主要的thread 尝试执行那些任务 不影响正常的服务器的工作. 它尝试创建可用的空闲的I/O 和调整它的…
14.6.7 Configuring the Number of Background InnoDB IO Threads 配置InnoDB IO Threads的数量 InnoDB 使用后台线程来服务各种类型的I/O请求.你可以配置后台线程的数量 服务服和写I/O 在数据页上, 使用配置参数 innodb_read_io_threads and innodb_write_io_threads. mysql> show variables like '%innodb_read_io_thread…
14.6.6 Configuring Thread Concurrency for InnoDB 配置线程并发 InnoDB 使用操作系统线程来处理请求(用户事务) 事务可能执行很多次在它们提交或者回滚前. 在现在的操作系统,具有多核CPU 上下文切换是有效的, 很多的负载运行很好没有任何并发线程数量的限制 在这种情况下 它是用助于最小化上下文切换在线程之间, InnoDB 使用一些技术来限制并发执行操作系统线程的数量(也就是说请求的数量任何一个时间的处理数量) 当InnoDB 从用户会话接收一…
14.6.4 Configuring the Memory Allocator for InnoDB 配置InnoDB 内存分配器 当InnoDB 被开发时,内存分配提供了操作系统和 run-time libraries是经常缺乏性能和可扩展性 在那时,没有内存分配库调整用于多核CPUs.因此,InnoDB 实现它自己的内存分配器在内存子系统. 这个分配器是通过一个的单一的互斥锁保护,会成为一个瓶颈. InnoDB 也实现一个封装接口 如今, 多核系统已经变的越来越广泛, 如今操作系统已经成熟,…
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_…