:: Anbieterverzeichnis :: Globale Branchen
:: SELFPHP Forum ::
Fragen rund um die Themen PHP?
In über
130.000 Beiträgen finden Sie sicher die passende
Antwort! 
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
|
Größe einer MySQL-Tabelle ermitteln  |
|
SELFPHP ist Shopware Solution Partner
Shopware ist ein vielfach ausgezeichnetes Onlineshop-System der shopware AG, das auf PHP. Zend Framework und SQL basiert.
SELFPHP unterstützt Sie als Shopware Solution Partner bei der Konzeption, Programmierung und Realisierung Ihres Onlineshops und passt Shopware bei Bedarf an Ihre Unternehmensbedürfnisse an.
Weitere Informationen
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
)
|

|
|
|
|
|


:: Anbieterverzeichnis ::
Webhosting/Serverlösungen
Suchen Sie den für Sie passenden IT-Dienstleister für Ihr Webhosting-Paket oder Ihre Serverlösung?
Sie sind nur ein paar Klicks davon entfernt! 
|