Rapide mémo pour déterminer la taille recommandée du buffer pour les tables utilisant le moteur de stockage InnoDB de MySQL. Par défaut après installation cette valeur est en général à 128 Mo, ce qui peut être bien bas pour de grosses bases de données.
La requête ci-dessous retourne la taille à renseigner pour la valeur de la variable innodb_buffer_pool_size
:
SELECT CEILING(Total_InnoDB_Bytes*1.6/POWER(1024,3)) RIBPS FROM ( SELECT SUM(data_length+index_length) Total_InnoDB_Bytes FROM information_schema.tables WHERE engine='InnoDB' ) A;
Il suffit alors de renseigner cette valeur dans le fichier de configuration /etc/my.cnf
:
[mysqld] innodb_buffer_pool_size=8G
Redémarrer MySQL/MariaDB :
$ sudo systemctl restart mariadb