Konfigurace MySQL parametru innodb buffer pool size
Hodnota innodb_buffer_pool_size je hodnota, která nám určuje velikost vyrovnávací paměti pro databázový server. Měla by být vypočítávána z velikosti RAM v serveru a její příliš nízká hodnota má za následek zpomalení aplikací, jelikož se data načítají z disku a ne z mezipaměti z RAM.
V našem případě má server 16GB RAM a optimální hodnota by měla být cca 75% velikosti RAM, což nám dává nastavení innodb_buffer_pool_size=12GB.
Velikost lze zjistit po přihlášení do DB v konzoli příkazem mysql -u root -p a zadáním hesla
SELECT @@innodb_buffer_pool_size/1024/1024/1024;
Změnu lze provést dvěma způsoby.
Dočasná změna:
Lze parametr změnit po přihlášení do mysql databáze příkazem mysql -u root -p a zadáním hesla.
Po restartu mysql nebo systému se hodnota vrátí na původních 128MB.
mysql> SET GLOBAL innodb_buffer_pool_size=12288000000;
Trvalá změna:
Zápisem parametru do konfiguračního souboru /etc/my.cnf a to pod [mysqld], bez toho to nefunguje.
<[mysqld] innodb_buffer_pool_size = 12G
Po restartu mysql se změna projeví a hned je vidět, že je využito více RAM a systém neswapuje.
Úprava funguje i pro MariaDB v 10.5.18 (otestováno)