:: 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!
:: Qozido ::
Die Bilderverwaltung mit Logbuch für
Taucher und Schnorchler.
|
|
Größe einer MySQL-Datenbank ermitteln |
Beispielaufgabe
Größe einer MySQL-Datenbank ermitteln.
Beschreibung
Die Funktion mysqlDbSize() berechnet die Größe einer Datenbank in Bytes und gibt als Ergebnis die Größe in Bytes und als formatierten Wert zurück. Die Funktion holt dabei Informationen zu der Datenbank und geht nacheinander jede Tabelle durch, um die jeweiligen Tabellengrößen zu addieren.
<?PHP
function mysqlDbSize( $database ) {
$sql = "SHOW TABLE STATUS FROM " . $database;
$result = @mysql_query( $sql );
$dbSize = 0;
while( ( $row = @mysql_fetch_array( $result, MYSQL_ASSOC ) ) == true ){
$dbSize += $row["Data_length"] + $row["Index_length"];
}
$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';
print_r( mysqlDbSize( $database ) );
?>
|
Ausgabebeispiel: Browseransicht
Array
(
[bytes] => 616559
[format] => 602.11 KiB
)
|
|
|
|
|
|
|