Teil von  SELFPHP   Teil von  Code Snippets / MySQL / Tabellen-Informationen
  +++ SELFPHP CronJob-Service :: Jetzt auch als Professional-Version verfügbar! +++

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: SELFPHP Forum ::

Fragen rund um die Themen PHP? In über 120.000 Beiträgen finden Sie sicher die passende Antwort!  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

:: Qozido ::

Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.   

 
 
Größe einer MySQL-Tabelle ermitteln





Beispielaufgabe

Größe einer MySQL-Tabelle ermitteln.



Beschreibung

Die Funktion mysqlTableSize() berechnet die Größe einer Datenbank-Tabelle in Bytes und gibt als Ergebnis die Größe in Bytes und als formatierten Wert zurück. Zusätzlich werden in dem zurückgegebenen Array noch der Datenbankname und der Tabellenname mit aufgenommen.




<?PHP 

function mysqlTableSize( $database, $table ) {
    
    
$sql = "SHOW TABLE STATUS FROM " . $database;
    
    
$result = @mysql_query( $sql );
    
    
$dbSize = 0;
    
    while( ( 
$row = @mysql_fetch_array( $result, MYSQL_ASSOC ) ) == true ){
        
        if ( 
$row["Name"] == $table ) {

            
$dbSize += $row["Data_length"] + $row["Index_length"]; 
            
        }
                
    }
    
    
$size['db'] = $database;
    
    
$size['name'] = $table;
    
    
$size['bytes'] = $dbSize;
    
    
$size['format'] = binary_multiples($dbSize,false);
    
    return 
$size;
    
}

?>



Zusatzfunktionen

<?PHP

function binary_multiples($size, $praefix=true, $short= true)
{

    if(
$praefix === true)
    {
        if(
$short === true)
        {
            
$norm = array('B', 'kB', 'MB', 'GB', 'TB', 'PB', 
                          
'EB', 'ZB', 'YB');
        }
        else
        {
            
$norm = array('Byte', 
                          
'Kilobyte', 
                          
'Megabyte', 
                          
'Gigabyte', 
                          
'Terabyte', 
                          
'Petabyte', 
                          
'Exabyte', 
                          
'Zettabyte', 
                          
'Yottabyte'
                         
);
        }
        
        
$factor = 1000;
    }
    else
    {
        if(
$short === true)
        {
            
$norm = array('B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 
                          
'EiB', 'ZiB', 'YiB');
        }
        else
        {
            
$norm = array('Byte', 
                          
'Kibibyte', 
                          
'Mebibyte', 
                          
'Gibibyte', 
                          
'Tebibyte', 
                          
'Pebibyte', 
                          
'Exbibyte', 
                          
'Zebibyte', 
                          
'Yobibyte'
                         
);
        }
        
        
$factor = 1024;
        
    }
    
    
$count = count($norm) -1;
    
    
$x = 0;
    while (
$size >= $factor && $x < $count) 
    { 
        
$size /= $factor; 
        
$x++;
    } 
  
  
$size = sprintf("%01.2f", $size) . ' ' . $norm[$x];

    return 
$size; 

}

?>



Anwendungsbeispiel

<?PHP

$conn 
= @mysql_connect("localhost", "mysql_user", "mysql_password");

if (!
$conn) {
    echo 
"Fehlende Verbindung zur DB: " . mysql_error();
    exit;
}

// Datenbankname
$database = 'selfphp-testdb';

// Tabellenname
$table = 'help_topic';

print_r( mysqlTableSize( $database, $table ) );

?>



Ausgabebeispiel: Browseransicht

Array
(
    [db] => selfphp-testdb
    [name] => help_topic
    [bytes] => 424332
    [format] => 414.39 KiB
)






 




:: Premium-Partner ::

Webhosting/Serverlösungen


Premium-Partner LeaseWeb Germany GmbH
Premium-Partner MECO Systemhaus GmbH & Co. KG
Premium-Partner PSW GROUP GmbH & Co. KG
Premium-Partner BPI-Systeme
Premium-Partner Pixel X
Premium-Partner
 

:: SELFPHP Sponsoren ::


DM Solutions
Microsoft Deutschland GmbH
Sedo - Bei uns wird PHP großgeschrieben
hostfactory.ch - OptimaNet Schweiz AG
ZEND - The PHP Company
Kaspersky Labs
HighText iBusiness
SELFPHP Sponsoren
 

Qozido


© 2001-2013 E-Mail SELFPHP OHG, info@selfphp.de, Impressum, Kontakt