L'optimisation d'une base de données MySQL permet de réorganiser les index et de vérifier que les tables ne comportent pas d'erreur.
Auparavant, nous utilisions un script php qui listait les tables (SHOW TABLES) et effectuait les optimisations une par une (OPTIMIZE TABLE ..., ANALYZE TABLE ...) mais ce script était long et monopolisait une bonne partie des ressources serveurs.
Il existe pourtant une commande fort pratique qui permet d'optimiser en une seule fois et très rapidement toutes les tables de vos bases de données MySQL :
mysqlcheck -u <utilisateur> -p --auto-repair --check --optimize --all-databases
L'utilisateur doit avoir les droits SELECT et INSERT au minimum (cf doc MySQL sur les commandes CHECK TABLE, REPAIR TABLE, ANALYZE TABLE, OPTIMIZE TABLE).
Vous pouvez le créer avec la commande suivante :
CREATE USER 'croncheck'@'localhost' IDENTIFIED BY '<mot de passe>'; GRANT SELECT ,INSERT ON * . * TO 'croncheck'@'localhost' IDENTIFIED BY '<mot de passe>';
Commentaires