Page 1 sur 1
[RESOLU] connaître la taille d'une table MySQL
Posté : 03 mar 2015 14:55
par Jojo48
Bonjour tous,
je recherche le moyen de connaître la taille d'une table MySQL
à l'aide d'une interface web (HTML, PHP).
Je sais bien le faire avec la console phpmyadmin (show table status; etc...), j'ai fait beaucoup d'essais mais je sèche pour l'interface !
Le but est d'avoir cette information sur l'écran de l'utilisateur afin de faire du nettoyage lorsque l'on atteint une taille trop importante (ralentissement du temps de rapatriement des données, etc...)
Si quelqu'un peut me donner un conseil je l'en remercie par avance.
Amitiés,
Jojo48
Re: [RECHERCHE] connaître la taille d'une table MySQL
Posté : 16 mar 2015 20:14
par Sylvain3665
Tu n'étais pas très loin...
Eventuellement, pour filtrer dès la requête :
Et tu as la colonne
Data_length qui te donne la taille des données de chaque table / de la table choisie de la base en cours
Re: [RECHERCHE] connaître la taille d'une table MySQL
Posté : 16 mar 2015 21:03
par Jojo48
Merci Sylvain,
mais "show table status..." est une visualisation au niveau de la console PhpMyadmin,
ce que je recherche, c'est un script (une requête) PHP pour rapatrier cette info sur l'écran (PHP / HTML) d'un site, afin de connaître la taille de la base sans avoir à aller dans PhpMyAdmin.
J'ai fait le tour du web et des tutos, et je n'ai rien trouvé de bien clair...
j'ai trouvé ça, mais ça ne fonctionne que dans la console (en ligne de commande) :
SELECT table_schema,round(sum(data_length+index_length)/1024/1024,4)
FROM information_schema.tables
WHERE table_schema = 'mysql'
AND table_name = 'user';
Il faudrait faire une adaptation PHP, mais je ne sais pas faire............... :'$
Amitiés,
Jojo48
Re: [RECHERCHE] connaître la taille d'une table MySQL
Posté : 16 mar 2015 21:38
par Kuroro
Code : Tout sélectionner
$sql = mysql_query ('SHOW TABLE STATUS WHERE `name`="nomDeTaBase"');
$resultat = mysql_fetch_array ($sql);
echo $resultat['Data_length'];
Ce serait pas ça le code PHP ?
J'ai pas essayé, pas le temps je vais me pager là.
Je verrai demain ta réponse.
Ciao
Re: [RECHERCHE] connaître la taille d'une table MySQL
Posté : 16 mar 2015 21:59
par Sylvain3665
Jojo48 a écrit :mais "show table status..." est une visualisation au niveau de la console PhpMyadmin
"
show table status" est une commande MySQL, je l'ai testée avant de répondre
Après si tu ne connais pas les fonctions php pour faire de la requête... cf le post de Kuroro juste au dessus
Re: [RECHERCHE] connaître la taille d'une table MySQL
Posté : 16 mar 2015 22:48
par Jojo48
Merci Kuroro,
ça fonctionne,
cela donne la valeur des "données" mais ça n'inclus pas la valeur de "index,
est-ce normal ?
dans mon cas (pour mes tests),
j'ai 4 ko de "données" et 2 ko de "index"
et le résultat me donne uniquement les 4 ko .
==>peut-être que la valeur de "index" ne varie pas .....?
Merci encore,
amitiés,
Jojo48
Re: [RECHERCHE] connaître la taille d'une table MySQL
Posté : 17 mar 2015 06:42
par Kuroro
http://dev.mysql.com/doc/refman/5.0/en/ ... tatus.html
Ci-dessus les différentes variables que tu peux appliquer.
Code : Tout sélectionner
$sql = mysql_query ('SHOW TABLE STATUS WHERE `name`="nomDeTaBase"');
$resultat = mysql_fetch_array ($sql);
$tailleDesDonnees = $resultat['Data_length'];
$tailleDeLIndex = $resultat['Index_length'];
$tailleTotale = $tailleDesDonnees+$tailleDeLIndex;
echo $tailleTotale;
Idem qu'hier, j'ai pas testé le code ça devrait marcher je pense, j'ai juste un doute sur l'addition.
Au pire, sur le lien que je t'ai donné, regarde dans les commentaires. En adaptant leur code (si le mien ne marche pas) ça devrait rouler...
Re: [RECHERCHE] connaître la taille d'une table MySQL
Posté : 17 mar 2015 14:34
par Jojo48
merci Kuroro,
ton code marche très bien,
cela correspond bien à ce que je cherchais :lol: :lol: :lol: :lol: :lol:
merci encore pour ton aide et merci aussi à Sylvain
pour avoir bien voulu me répondre sur ce coup là. :lol: :lol: :lol: :lol: :lol:
Amitiés,
Jojo48