InnoDB buffer pool 是被分成区域的数量, 对于系统 buffer pools在多个G的范围, 把buffer pool 到单独的实例可以改善并发,通过降低竞争因为不同的线程读和写cached pages. 每个page 是存储在或者从buffer pool读取是随机分配到buffer pool实例其中一个, 使用一个hash 函数。每个buffer pool 管理它自己的free lists,flush lists,LRUs和 所有其他数据结构连接到buffer pool,是有它自己的buffer pool mutex保护 这个选项只有当设置 innodb_buffer_pool_size 值大于1G时才生效。 总共你指定的大小是分配给所有的buffer pools。 为了最好的性能, 指定Innodb_buffer_pool_instances 和innodb_buffer_pool_size 的组合 每个buffer pool 实例至少1GB 在MySQL 5.6.6之前,默认是1, 默认值 在MySQL 5.6.6和更高版本在32位系统取决于innodb_buffer_pool_size的值 mysql> show variables like '%innodb_buffer_pool_instances%'; +------------------------------+-------+ | Variable_name | Value | +------------------------------+-------+ | innodb_buffer_pool_instances | 8 | +------------------------------+-------+ 1 row in set (0.00 sec)
innodb_buffer_pool_instances
最新推荐文章于 2024-08-08 19:03:37 发布