Connaître la taille des bases et des tables MySQL en deux requêtes


MySQLBonjour,

J’imagine que comme moi, vous appréciez pouvoir connaître rapidement la taille de vos bases de données MySQL ainsi que la taille des tables qu’elles contiennent. Si vous ne le saviez pas encore, ceci est possible avec seulement deux requêtes grâce à la base de données information_schema .

  • Connaître la taille des bases de données
SELECT table_schema "Nom de la base", SUM( data_length + index_length)
"Taille" FROM information_schema.TABLES GROUP BY table_schema ;

Il est tout à fait possible de filtrer cette requête pour ne récupérer que certaines bases de données grâce à l’ajout d’un LIKE :

WHERE table_schema LIKE "%schema de vos base%"

ou encore

 table_schema IN ('base1',base2'...)

Le retour est en octet, j’ai choisi de ne pas convertir les résultats en en Ko, Mo etc.. directement dans la requêtes. A vous de rajouter cette division ou bien de traiter les données autre part ( Dans Birt par exemple . . . 😉 )

  •  Connaitre la taille des tables ( par base de données ) , j’ai choisi de garder la possibilité avec cette requête de pouvoir remonter les tables, comprenant au moins 1 lignes, provenant de bases différentes grâce au filtre sur table_schema.
SELECT ENGINE,table_schema, table_name, AVG_ROW_LENGTH as Entry_data_size,TABLE_ROWS as Rows,DATA_LENGTH as Data_Size,INDEX_LENGTH as Index_Size,DATA_LENGTH+INDEX_LENGTH as Total_size, ROUND(DATA_LENGTH/(DATA_LENGTH+INDEX_LENGTH),2) as Ratio 
FROM information_schema.TABLES where TABLE_NAME like "%schema-des-tables%" and table_schema like'%schema-des-bases%' and TABLE_ROWS >0 
GROUP BY table_schema,table_name 
ORDER BY TABLE_ROWS desc;

version instacode ..

instacode_talle_table

Le retour est en octet, j‘ai choisi de ne pas convertir les résultats en en Ko, Mo etc.. directement dans la requêtes. A vous de rajouter cette division ou bien de traiter les données autre part ( Dans BIRT par exemple . . . 😉 )

En espérant que ces deux requêtes vous faciliteront la vie !

Etienne.

PS: Si le contenu de cet article vous semble erroné ou pas assez précis, merci de me le signaler dans les commentaires et ou par mail à contact@etiennegautier.net

 

Tags: , , , , , ,

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.