Il arrive parfois que nous ayons besoin de connaître le poids de toutes les tables d'une base de données. Pour cela, il existe une requête SQL simple qui permet de récupérer ces données.
Tout d'abord, connectez-vous mysql, soit en passant par un outil tel que phpmyadmin ou adminer, soit en passant par ssh via la commande suivante :
mysql -u [USERNAME] -p[PASSWORD] [DBNAME]
Où :
[USERNAME]
correspond à votre nom d'utilisateur qui accède à votre base de données,[PASSWORD]
correspond au mot de passe qui accède à votre base de données,[DBNAME]
correspond au nom de votre base de données,
Récupérer le poids de toutes les tables dans une base de données
Ensuite, il vous suffit de taper cette commande en remplaçant
[DBNAME]
par le nom de votre base de données :
SELECT TABLE_NAME AS `Table`,
ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Size (MB)`
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = "[DBNAME]"
ORDER BY (DATA_LENGTH + INDEX_LENGTH) DESC;
Récupérer le poids de toutes les tables de toutes les bases de données
Il vous suffit de supprimer la condition :
SELECT TABLE_NAME AS `Table`,
ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Size (MB)`
FROM information_schema.TABLES
ORDER BY (DATA_LENGTH + INDEX_LENGTH) DESC;
Et voilà 😉