MySQL 8.4 发行说明
对于缓冲池大小在几 GB 范围内的系统,将缓冲池划分为多个独立的实例可以提高并发性,方法是减少不同线程在读取和写入缓存页面时的争用。此功能通常适用于缓冲池大小在几 GB 范围内的系统。使用 innodb_buffer_pool_instances
配置选项配置多个缓冲池实例,您可能还需要调整 innodb_buffer_pool_size
的值。
当 InnoDB
缓冲池很大时,可以通过从内存中检索来满足许多数据请求。您可能会遇到多个线程尝试同时访问缓冲池造成的瓶颈。您可以启用多个缓冲池以最大程度地减少这种争用。存储在缓冲池中或从缓冲池读取的每个页面都使用哈希函数随机分配给其中一个缓冲池。每个缓冲池都管理自己的空闲列表、刷新列表、LRU 以及与缓冲池连接的所有其他数据结构。
要启用多个缓冲池实例,请将 innodb_buffer_pool_instances
配置选项设置为大于 1(默认值)的值,最大为 64。仅当您将 innodb_buffer_pool_size
设置为 1GB 或更大时,此选项才会生效。您指定的总大小将在这所有缓冲池之间分配。为了获得最佳效率,请指定 innodb_buffer_pool_instances
和 innodb_buffer_pool_size
的组合,以便每个缓冲池实例至少为 1GB。
有关修改 InnoDB
缓冲池大小的信息,请参阅 第 17.8.3.1 节 “配置 InnoDB 缓冲池大小”。