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
[RESOLU] connaître la taille d'une table MySQL
-
Auteur du sujetJojo48
- Nouveau
- Messages : 125
- Enregistré le : il y a 11 ans
- Localisation : dans les cavernes
-
- Nouveau
- Messages : 86
- Enregistré le : il y a 15 ans
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
Code : Tout sélectionner
show table status;
Code : Tout sélectionner
show table status where Name = 'NomTable';
-
Auteur du sujetJojo48
- Nouveau
- Messages : 125
- Enregistré le : il y a 11 ans
- Localisation : dans les cavernes
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
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
-
- Grand Habitué
- Messages : 729
- Enregistré le : il y a 13 ans
Code : Tout sélectionner
$sql = mysql_query ('SHOW TABLE STATUS WHERE `name`="nomDeTaBase"');
$resultat = mysql_fetch_array ($sql);
echo $resultat['Data_length'];
J'ai pas essayé, pas le temps je vais me pager là.
Je verrai demain ta réponse.
Ciao
-
- Nouveau
- Messages : 86
- Enregistré le : il y a 15 ans
"show table status" est une commande MySQL, je l'ai testée avant de répondreJojo48 a écrit :mais "show table status..." est une visualisation au niveau de la console PhpMyadmin
Après si tu ne connais pas les fonctions php pour faire de la requête... cf le post de Kuroro juste au dessus
-
Auteur du sujetJojo48
- Nouveau
- Messages : 125
- Enregistré le : il y a 11 ans
- Localisation : dans les cavernes
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
ç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
-
- Grand Habitué
- Messages : 729
- Enregistré le : il y a 13 ans
http://dev.mysql.com/doc/refman/5.0/en/ ... tatus.html
Ci-dessus les différentes variables que tu peux appliquer.
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...
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;
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...
-
Auteur du sujetJojo48
- Nouveau
- Messages : 125
- Enregistré le : il y a 11 ans
- Localisation : dans les cavernes
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
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
Qui est en ligne
Utilisateurs parcourant ce forum : Xeos et 3 invités