Innodb_buffer_pool_size may be the most important variable for any MySQL database using InnoDB tables. Configuration of innodb_buffer_pool_size is highly recommended to reduce excessive I/O usage. I/O usage is the primary bottleneck for MySQL servers because it's slow, and high usage indicates that the disk subsystems are being overworked. This may markedly affect performance during peak usage and maintenance.
InnoDB buffer pool works by caching the most recently accessed data. By caching on memory, data can be retried from the cache instead of the disk. The buffer pool is designed to keep the most frequently-used data available in the cache, by managing two sublists.
- When new data is accessed, it is stored at the top of the 'older' list. The oldest item in this list is removed and will need to be retrieved from the disk if queried again.
- This data is moved to the top of the 'newer' list when it is queried again.
When the buffer pool is set correctly, data that is accessed often can be quickly retrieved from memory, as needed.
Releem collects information on your MySQL server and will automatically select the best configuration for innodb_buffer_pool_size, tailored to your database.