The number of regions that the InnoDB buffer pool is divided into. For systems with buffer pools in the multi-gigabyte range, dividing the buffer pool into separate instances can improve concurrency,by reducing contention as different threads read and write to cached pages. Each page that is stored in or read from the buffer pool is assigned to one of the buffer pool instances randomly, using a hashing function. Each buffer pool manages its own free lists, flush lists, LRUs, and all other data structures connected to a buffer pool, and is protected by its own buffer pool mutex.
InnoDB缓冲池划分的区域数。对于具有数千GB范围的缓冲池的系统,将缓冲池划分为单独的实例可以通过减少不同线程对缓存页进行读写时的争用来提高并发性。使用散列函数将存储在缓冲池中或从缓冲池读取的每个页面随机分配给其中一个缓冲池实例。每个缓冲池管理自己的空闲列表、刷新列表、LRU和连接到缓冲池的所有其他数据结构,并由自己的缓冲池互斥体保护。
This option only takes effect when setting innodb_buffer_pool_size to 1GB or more. The total
buffer pool size is divided among all the buffer pools. For best efficiency, specify a combination of
innodb_buffer_pool_instances and innodb_buffer_pool_size so that each buffer pool
instance is at least 1GB.
此选项仅在将innodb_buffer_pool_size设置为1GB或更大时生效。缓冲池的总大小在所有缓冲池之间分配。为获得最佳效率,请指定innodb_buffer_pool_instances和innodb_buffer_pool_size的组合,以便每个缓冲池实例至少为1GB。
The default value on 32-bit Windows systems depends on the value of
innodb_buffer_pool_size, as described below:
32位Windows系统上的默认值取决于 nnodb_buffer_pool_size,如下所述:
• If innodb_buffer_pool_size is greater than 1.3GB, the default for
innodb_buffer_pool_instances is innodb_buffer_pool_size/128MB, with individual
memory allocation requests for each chunk. 1.3GB was chosen as the boundary at which there is
significant risk for 32-bit Windows to be unable to allocate the contiguous address space needed
for a single buffer pool.
• Otherwise, the default is 1.
On all other platforms, the default value is 8 when innodb_buffer_pool_size is greater than or
equal to 1GB. Otherwise, the default is 1.