Défragmenter un Serveur MySQL

Bonjour à tous,
Aujourd’hui, j’écris sur la défragmentation d’un serveur de base de donnée de type MySQL, car contrairement aux idées reçus (Merci iooner)

Non,  que ce soit MyISAM ou d’InnoDB c’est deux types se fragmentent et ralentissent le serveur si ce sont des tables très utilisées ! Cela varie en fonction de l’usage et l’organisation de la table

 

N’avez-vous jamais vu avec MySQL Tuner,

MySQL Tunner

Souvent un simple

Règle tout ,sauf pour nos amis les tables InnoDB qui renvoie cette réponse à cette commande

Os+(2015-03-01+at+12.08.26)

Et là ça se complique, pour palier à ce problème if faut appliquer cette procédure à suivre à la lettre si vous ne voulez pas perdre toutes vos BDD

InnoDB fonctionne ainsi :

InnoDB

Si vous avez compris ce Shema vous pouvez vous arrêter là je n’ai rien à vous apprendre en plus, je vais juste le reformuler de manière concrète.

Donc dans un  premier on va Backup (Sauvegarder) notre serveur de base de donné pour cela :

Cela va créer un fichier all_dbs.sql contenant toutes vos données .

Bien, nous avons un point de retour, passons à la suite !

Maintenant, on va supprimer toutes les bases de données du serveur sauf les bases de données utilisé pour gérer le serveur SQL c’est-à-dire : tout sauf mysql et information_schema

Une fois cela fait stopper le Serveur MySQL

Une fois cela fait nous pouvons éditer les configurations du serveur SQL en toute sécurité.

Ajouter ceci à /etc/my.cnf après [mysqld]

Ensuite on va nettoyer le dossier /var/lib/mysql/

On peux alors redémarrer MySQL

Si ce dernier vous informe d’un échec vérifié ! MySQL a pu démarrer mais, signal un échec du fait que InnoDB a été altéré

Ensuite, il suffit de restaurer le Backup via cette commande :

Puis de relancer

Voila !  votre serveur est défragmenté !