MySQL 9.0 发行说明
对于缓冲池大小在多个 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 缓冲池大小”。