
Optimiser toutes les tables de la base ma-bdd ⇒ mysqlcheck -u root -p --optimize --databases ma-bdd
Pour réparer la table ma-table de la base ma-bdd ⇒ mysqlcheck -r ma-bdd ma-table -u root -p
Paramètres à utiliser avec la commande mysqlcheck :
-A, --all-databases Vérifie toutes les bases de données. C'est la même chose que --databases avec toutes les bases de données sélectionnées.
-a, --analyze Analyse les tables données.
--auto-repair Si une table cochée est corrompue, la corrige automatiquement. La réparation sera effectuée après que toutes les tables auront été cochées, si des fichiers corrompus ont été trouvés.
-c, --check Vérifie la table pour les erreurs.
-C, --check-only-changed
Vérifier uniquement les tables qui ont changé depuis la dernière vérification ou n'ont pas été fermées correctement.
-g, --check-upgrade Vérifie les tables pour les changements dépendant de la version. Peut être utilisé avec --auto-repair pour corriger les tables nécessitant une mise à jour dépendant de la version.
--compress Utiliser la compression dans le protocole serveur/client.
-F, --fast Ne vérifie que les tables qui n'ont pas été fermées correctement.
--fix-db-names Corrige les noms de bases de données.
--fix-table-names Corrige les noms de table.
-f, --force Continue même si il y a une erreur SQL.
-e, --extended Si vous utilisez cette option avec CHECK TABLE, assurez-vous que le tableau est cohérent à 100 %.
--flush Vide chaque table après vérification.
-?, --help Affiche ce message d'aide et quitte.
-h, --host=name Se connecter à l'hôte.
-m, --medium-check Plus rapide que extended-check, mais ne trouve que 99,99 % de toutes les erreurs. Devrait être assez bon pour la plupart des cas.
-o, --optimize Optimiser la table.
-p, --password[=name]
Mot de passe à utiliser lors de la connexion au serveur.
-P, --port=# Numéro de port à utiliser pour la connexion.
--protocol=nom Le protocole à utiliser pour la connexion (tcp, socket, pipe).
-q, --quick Si vous utilisez cette option avec CHECK TABLE, elle empêche la vérification d'analyser les lignes pour vérifier les liens erronés. C'est la vérification la plus rapide. Si vous utilisez cette option avec REPAIR TABLE, il essaiera de réparer uniquement l'arborescence des index. C'est la méthode de réparation la plus rapide pour un tableau.
-r, --repair Peut réparer presque tout sauf les clés uniques qui ne le sont pas.
-s, --silent N'affiche que les messages d'erreur.
--skip-database=nom
Ne pas traiter la base de données spécifiée en argument.
--tables Remplace l'option --databases (-B).
--use-frm Lorsqu'il est utilisé avec REPAIR, obtient la structure de la table à partir du fichier .frm, afin que la table puisse être réparée même si l'en-tête .MYI est corrompu.
-u, --user=nom Utilisateur pour la connexion si ce n'est pas l'utilisateur actuel.
N.b: Que signifie « La table ne prend pas en charge l’optimisation, faire recréer + analyser à la place » ?
C’est un message d’information.
Il faut éviter de faire OPTIMIZE sur une table utilisant le moteur de stockage InnoDB, car InnoDB ne prend pas en charge OPTIMIZE comme MyISAM. Il crée une table vide, y copie toutes les lignes de la table existante, supprime essentiellement l’ancienne table et renomme la nouvelle table.
Donc, méfiez-vous - ne l’utilisez pas si vous manquez d’espace disque car cela risque de saturer le serveur en essayant de recréer une très grande table.
En résumé :
mysqlcheck -u <utilisateur> -p --auto-repair --check --all-databases
mysqlcheck -u <utilisateur> -p --auto-repair --optimize --all-databases