Connaître la taille des tables d’une base de données en ligne de commandes

closeCet article a été publié il y a 8 ans 1 mois 10 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.

Depuis que j’ai commencé à travailler chez LinkByNet, j’ai pris l’habitude d’interroger MySQL/MariaDB directement en ligne de commande, et comme pour un shell « Linux », il y a plein de choses pour lesquelles c’est plus rapide. Mais parfois, il y a certains petits trucs qui rendent un outil comme PHPMyAdmin pratique, et ça passe notamment par la taille des tables, une des étapes quand on analyse les pistes d’amélioration de performance. Fort heureusement, on peut s’en sortir rapidement aussi sans faire appel au clicodrôme. Simplement je sais pas, mais ça marche bien en tout cas.

Une seule commande. Certes, c’est du niveau de ce que j’ai pu vous présenter précédemment, mais ça tient à une commande à conserver dans un coin pour avoir une vision de la taille de vos tables. Donc la commande c’est celle-là :

Que fait donc cette commande ? Les informations liées à votre base de données se trouvent dans la base information_schema, et en l’occurrence, la table TABLES. On récupère donc les informations essentielles, le nom de la table, le nombre de lignes, la taille des données index compris, et on fait un petit calcul pour afficher la taille en méga-octets (d’où la double division par 1024, parce que les tailles sont stockées en octets). table_schema désigne le nom de votre base (blog dans l’exemple). Voilà le résultat pour la mienne :

Déjà je découvre que j’ai encore des tables de NextGen Gallery alors que je n’utilise plus cette extension (je ne me souviens même pas l’avoir utilisé une seule fois dans un article au final). Et on se rend compte que fort logiquement la table la plus grosse est wp_posts, puisqu’elle contient les informations et données de tout ce que vous postez : images, pages, articles, y compris toutes les révisions. Évidemment les autres tables sont importantes également, mais là, vous avez un moyen par exemple de pointer du doigt le responsable d’une grosse lenteur, pourquoi pas, comme ça a été mon cas lors de ma première utilisation, un dump anormalement long.

3 Commentaires
Le plus ancien
Le plus récent
Commentaires en ligne
Afficher tous les commentaires
Winux
Winux
17/03/2016 08:59

Sur certains blogs pour connaitre la taille d’une base de données ils mettent la requête suivante :

SELECT table_schema, round(sum(data_length+index_length)/1024/1024,2) AS « Size (MB) »
FROM information_schema.tables
GROUP BY table_schema;
Mais je ne comprend pas à quoi sert le « ,2 » ou « ,4 » dans le « round ». Est ce que tu sais pourquoi?

Winux
Winux
18/03/2016 10:18
Répondre à  Seboss666

Ok. Merci.