Profitez de milliers de films, de jeux, de musiques, de livres, de magazines, et plus encore. À tout moment, où que vous soyez, sur tous vos appareils.

Visualisation Article

Optimiser toutes les tables d'une base MySQL


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 -p --auto-repair --check --all-databases  mysqlcheck -u -p --auto-repair --optimize --all-databases

 

Publié le mercredi 22 novembre 2023 par Philippe SCHMITT