|
|
|
Größe einer Datenbank
Zurück zur Übersicht Dieser Script gibt den Speicherbedarf von einer Datenbank aus.
Manchmal ist es intressant, wieviel Festplattenspeicher die Datenbank (oder einzelne Tabellen) verbraucht.
Allerdings kann man hierbei nur den Speicherbedarf für die Einträge exakt ermitteln, den Speicherbedarf für die Struktur der Tabelle muss man schätzen.
Mit diesem Script ermittelt man die Größe der gesamten Datenbank, allerdings ohne Speicherplatz für Struktur:
| PHP |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
|
<?php
//Datenbank-Verbindung per mysql_connect();
function database_size($dbname)
{
$size = 0;
$size_struct = 0; //Durschnittliche Größe der Struktur einer Tabelle
$abfrage = "SHOW TABLE STATUS FROM `$dbname`;";
$ergebnis = mysql_query($abfrage);
while($_rec = mysql_fetch_array($ergebnis))
{
$size += $_rec['Index_length'] + $_rec['Data_length'] + $size_struct;
}
return $size;
}
echo database_size("datenbank_name")." Byte";
?>
|
|
Die Rückgabe ist in Byte.
Möchte man nur die Größe von einzelnen Tabellen wissen, dann kann man dies so Lösen:
| PHP |
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:
|
<?php
//Datenbank-Verbindung per mysql_connect();
function table_size($dbname,$table)
{
$size = 0;
$size_struct = 0; //Durschnittliche Größe der Struktur einer Tabelle
$abfrage = "SHOW TABLE STATUS FROM `$dbname`;";
$ergebnis = mysql_query($abfrage);
while($_rec = mysql_fetch_array($ergebnis))
{
if(!is_array($table) OR in_array($_rec['Name'], $table))
{
$size += $_rec['Index_length'] + $_rec['Data_length'] + $size_struct;
}
}
return $size;
}
$table = array();
$table[] = "tabelle1";
$table[] = "tabelle2";
$table[] = "tabelle3";
echo table_size("datenbank_name",$table)." Byte";
?>
|
|
Auch hier ist die Rückgabe wieder in Byte, was man aber am besten noch in KB oder MB umrechnen sollte.
Diese beiden Funktionen geben nur den Speicherbedarf für den Inhalt zurück. Den Speicherbedarf für die Struktur müsste man schätzen.
Bei normalen Tabellen liegt er bei durchschnittlich 9000 Byte, also setzt man $size_struct einfach auf 9000.
Kommentare
Zurück zur Übersicht
Autor Andavos
|
|
|
|