MySQL : connaître la taille d'une base de données


Taille d'une base de données MySQL
Voici quelques astuces pour connaître la taille d'une base de données MySQL ou uniquement la taille d'une table. Cette information est généralement disponible par l'utilisation de certains clients MySQL, comme phpMyAdmin ou encore MySQL Administrator. Ici, je vous propose d'obtenir la taille en utilisant uniquement des requêtes SQL.

Connectez-vous à la base de données MySQL :

mysql -u root -p

Lancez par exemple la requête SQL suivante pour obtenir la taille de toutes les bases de données en Mo :

SELECT table_schema, round(sum(data_length+index_length)/1024/1024,4) AS "Size (MB)"
FROM information_schema.tables 
GROUP BY table_schema;

Si l'on souhaite la taille d'une table uniquement, il faudra préciser le nom de cette dernière (champ table_name), ainsi que le nom de la base de données (champ table_schema) :

SELECT table_schema,round(sum(data_length+index_length)/1024/1024,4) 
FROM information_schema.tables 
WHERE table_schema = 'mysql' 
AND table_name = 'user';

Si on veut afficher la taille de toutes les tables d'une base :

SELECT table_name AS "Tables", round(((data_length + index_length) / 1024 / 1024), 2) AS "Size (MB)" 
FROM information_schema.tables 
WHERE table_schema =  'mysql';

7 Commentaires pour "MySQL : connaître la taille d'une base de données"

Flux des commentaires de cet article Ajouter un commentaire
  •  

    Merci beaucoup pour cette commande magique !!

    RépondreRépondre
    Benjamin , le 27 mars 2011 à 18:57
  •  

    Très pratique, merci !
    Je l'ai utilisé avec un "ORDER BY 2" à la fin de la requête pour trier les tables (ou bases) en fonction de leur taille.

    RépondreRépondre
    billux , le 11 avril 2011 à 18:10
  •  

    Pour connaitre la taille totale de toutes les bases de données ensemble, utilisez cette requête (basé sur celle donné dans cet article) :

    SELECT SUM(Size) FROM ((SELECT table_schema, round(sum(data_length+index_length)/1024/1024,4) AS "Size" FROM information_schema.tables GROUP BY table_schema)AS sizes);

    RépondreRépondre
    JBENOIT , le 29 avril 2011 à 11:21
  •  

    Cool ta vie billux.

    RépondreRépondre
    Vickram , le 13 septembre 2012 à 09:59
  •  

    Merc pour la première requête, c'est parfait :)

    RépondreRépondre
    david96 , le 7 mars 2013 à 02:04
  •  

    Merci pour ces requêtes. Les valeurs semble être approximatives mais le but c'est d'avoir un ordre de grandeur.
    Bien pratique en tout cas.

    RépondreRépondre
    Tony , le 1 janvier 2014 à 20:02
  •  

    Bonjour,
    est ce possible de connaitre l'espace disque utilisé par une colonne d'une table précise?
    Cdlt

    RépondreRépondre
    awax , le 12 août 2014 à 16:16
 

Ajouter un commentaire

actualité android apache apple astuce astuces bash bilboblog blog boot chrome clavier commande commandes conky date debian Desktop développement elementary exploit faille fedora firefox flash gimp gnome google graphique Graphisme hack hacking Hardware humour intel internet iphone jailbreak Jeux Kde kernel libre Linux log logiciels Logiciels Libres lucid lynx maemo mail maquette metasploit microsoft mobile mockup monitoring mozilla multi-touch musique mysql n900 nautilus nokia noyau openoffice open source password photos php Planet publicité redhat red hat rpm réseau screenshot script serveur serveurs shell sql ssh statistiques sysadmin system Sécurité thème tux-planet tv twitter ubuntu unity vidéo vidéos vlc voyage wallpaper windows wordpress yum