MySQL et les tables frag­men­tées

Il existe un superbe script Perl permet­tant de rece­voir des conseils sur l’op­ti­mi­sa­tion de sa base MySQL : mysql­tu­ner.pl.

La dernière fois que je l’ai lancé, il m’a genti­ment dit que j’avais 4 tables frag­men­tées, ce qui est mauvais pour les perfor­mances et que je devais utili­ser OPTIMIZE TABLE pour régler ce problème.

Soit. Mais sur quelles tables lancer cette commande ?

Ce n’est pas compliqué. Il suffit de lancer, dans le prompt MySQL [1]:

USE information_schema;

SELECT TABLE_SCHEMA,TABLE_NAME FROM TABLES WHERE TABLE_SCHEMA NOT IN ("information_schema","mysql") AND Data_free > 0;

Voilà. Après cela, il ne reste plus qu’à lancer

OPTIMIZE TABLE nom_de_la_table;

sur chacune des tables renvoyées par la commande précé­dente.

[1] : commande trou­vée sur http://blog.barfoo.org/2008/09/19/defrag­men­ting-all-frag­men­ted-myisam-tables/

Me soutenir sur Tipeee Me soutenir sur Liberapay

2 réflexions au sujet de « MySQL et les tables frag­men­tées »

  1. Hello

    Il y a aussi la commande shell mysqlcheck --optimize --all-databases
    Elle s’occupe de chercher elle même les tables qui ont besoin d’être optimisées et exécute un OPTIMIZE TABLE dessus.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *