IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration MySQL Discussion :

Taille Totale d'une DB MySQL 4


Sujet :

Administration MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2006
    Messages : 80
    Par défaut Taille Totale d'une DB MySQL 4
    Bonjour,

    Alors pour MySQL5, y'a pas de problème pour trouver la taille d'une DB, il suffit de queryer Information_Schema et de faire un SUM des Data_Length et Index_length....

    Mais pour MySQL4, comment fais-t-on ?

    Y'a bien un moyen via le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SHOW TABLE STATUS FROM 'my_table'
    Mais comment afficher juste la taille, sans la ribambelles d'informations qui vient avec ?

    Sous un système unix/linux, suffit de faire un
    Puis d'ajouter l'index_length... Seulement j'aimerais tout faire en SQL dans une DB MySQL4. Et il faut que ce code soit indépendant de l'OS.

    Y'aurait-il l'un d'entre-vous qui posséderait un morceau de code qui me permettrait d'avoir la taille totale (index+datas) d'une DB MySQL4 ?

    Sans PHP ni rien svp, le but est de ne pas programmer derrière. Cette partie viendra après...

    D'avance merci ^^.
    Franck.

  2. #2
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 510
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 510
    Par défaut
    Il me semble qu'il existe cette information puisque phpMyadmin l'affiche. J'avoue avoir la flemme mais je peux t'assurer que cela existe.

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2006
    Messages : 80
    Par défaut
    Merci de répondre.

    En fait, en php, grossièrement, j'y arrive. Ca donne ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    session_start();
    $host="myhost";
    $password="mypass";
    $user="myuser";
     
    $cnx=mysql_connect($host,$user,$password) or die('Erreur de connexion '.mysql_error());
     
    $show_query=mysql_query("show databases") or die(mysql_error());;
    $NUM_ROWS = mysql_num_rows($show_query);
     
    $sum_datas=0;
    $sum_index=0;
    $sum_total=0;
    $sum=0;	
    $datas=array(); 
    $indexes=array();
    while($row=mysql_fetch_row($show_query))
    {
    		//pour chaque db trouvée, je me connecte
    		mysql_select_db($row[0], $cnx)  or die('Erreur de selection '.mysql_error());
    		//je stock le nom de la db
    		$dbname=$row[0];
    		$sum=0;
    		$i=0;
    		echo '<font color=red>'.$dbname.'</font>';
    		//show table status pour chacune des db
    		$query_size=mysql_query("show table status from ".$dbname."") or die(mysql_error());;
    		//tant qu'il y a des rows renvoyé par le show table status
    		//pour chaque table, on stock la taille des index et la taille des datas
    		//Pour chaque DB, on parcours les tables et on additionne la taille des données et des indexs
    		while($row2=mysql_fetch_row($query_size))
    		{
    			$datas[$i]=$row2[5]/1024 /1024;
    			$indexes[$i]=$row2[7] /1024 /1024;
    			$sum_datas=$sum_datas+$datas[$i];
    			$sum_index=$sum_index+$indexes[$i];
    			$i++;
    		}
    		$sum=$sum_datas+$sum_index;
    		$sum_total=$sum_total+$sum;
    		echo ' somme totale: '.$sum.'<br>';
     
    }
    ?>
    <html>
    <body>
    Voici le résultat: <?php echo $sum; ?>
    </body>
    </html>
    Ca, ça me donne le même résultat que ce que PHPMyAdmin le donne, donc il doit sensiblement effectuer les mêmes opérations que moi pour calculer.

    Seulement le problème est qu'on pour y arriver, pour l'instant, je dois me servir de PHP, faire une connexion, puis, pour chaque résultat renvoyé par "show databases", faire une connexion et "show table status from les_tables_générées_par_la_query_avant", là dedans je prend que ce qui m'intéresse, la 6ème et la 8ème colonne (Index et Datas) et j'additionne. Ce que fait sûrement faire PhPMyAdmin.

    Mais c'est pas pratique. Faudrait que je puisse le faire en utilisant UNIQUEMENT du SQL. En fait cette opération est la première d'un mécanisme de centralisation de données. Faut que je puisse extraire la taille des DB pour centraliser par après. Faut que ce job tourne tout les jours, en CronTab. etc etc.

    Comme ça va être scripté, exit le PHP, trop chiant à gérer dans les scripts. Voilà pourquoi je veux uniquement utiliser du SQL, mais il semble que ça soit difficilement réalisable, sans Information_Schema...

    Enfin voilà

Discussions similaires

  1. Total d'une table MySql
    Par Géry59 dans le forum Requêtes
    Réponses: 3
    Dernier message: 03/12/2013, 11h17
  2. Taille maximale d'une table MySql 5.5.20
    Par lololo60 dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 09/02/2012, 22h18
  3. Taille maximum d'une table MySQL
    Par nicko_73 dans le forum Débuter
    Réponses: 1
    Dernier message: 16/03/2010, 13h15
  4. taille maximale d'une base mysql
    Par calla29 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 26/07/2006, 13h59
  5. récupérer la taille totale d'une image avant chargement
    Par sorenson dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/06/2006, 14h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo