MySQL 8.4 Release Notes
17.8.3.2 配置多个缓冲池实例
对于具有多个吉字节缓冲池的系统,分割缓冲池为单独的实例可以提高并发性,通过减少不同线程读取和写入到缓存页面的竞争。这一特性通常适用于具有多个吉字节缓冲池大小的系统。使用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缓冲池大小”。