[RESOLU] connaître la taille d'une table MySQL

Vous recherchez un programme, une solution, posez votre question ici.
Répondre
Avatar du membre
Auteur du sujet
Jojo48
Nouveau
Nouveau
Messages : 125
Enregistré le : il y a 11 ans
Localisation : dans les cavernes

[RESOLU] connaître la taille d'une table MySQL

Message 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
Image
Sylvain3665
Nouveau
Nouveau
Messages : 86
Enregistré le : il y a 15 ans

Message par Sylvain3665 »

Tu n'étais pas très loin...

Code : Tout sélectionner

show table status;
Eventuellement, pour filtrer dès la requête :

Code : Tout sélectionner

show table status where Name = 'NomTable';
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 :)
Avatar du membre
Auteur du sujet
Jojo48
Nouveau
Nouveau
Messages : 125
Enregistré le : il y a 11 ans
Localisation : dans les cavernes

Message 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
Image
Avatar du membre
Kuroro
Grand Habitué
Grand Habitué
Messages : 729
Enregistré le : il y a 13 ans

Message 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 ;)
Sylvain3665
Nouveau
Nouveau
Messages : 86
Enregistré le : il y a 15 ans

Message 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 :)
Avatar du membre
Auteur du sujet
Jojo48
Nouveau
Nouveau
Messages : 125
Enregistré le : il y a 11 ans
Localisation : dans les cavernes

Message 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
Image
Avatar du membre
Kuroro
Grand Habitué
Grand Habitué
Messages : 729
Enregistré le : il y a 13 ans

Message 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...
Avatar du membre
Auteur du sujet
Jojo48
Nouveau
Nouveau
Messages : 125
Enregistré le : il y a 11 ans
Localisation : dans les cavernes

Message 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
Image
Répondre

Qui est en ligne

Utilisateurs parcourant ce forum : Nakadon et 4 invités