:: 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-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
)
|
|
|
|
|
|
|