PHP-Einfach.de PHP lernen leicht gemacht

Navigation
» Startseite
» Newsübersicht
» Kontakt
» Impressum

Community
» Forum
» Gästebuch

Tutorial
» PHP Tutorial
» MySQL Tutorial
» PHP
» MySQL
» Codeschnipsel

Downloads
» Einführung
» Scripts
» Command Board

Sonstiges
» md5-Generator
» Generator
» Wissenswertes

PHP lernen


Dieses Projekt wird unterstützt von
Lichteffekte Shop

 
Partner:
PHP Forum
Mathe Nachhilfe
Suchmaschinenoptimierung

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

News
13.08 - » Spam im Gästebuch
Endlich Schluss mit dem Spam

08.12 - » Clanletter 2.0
Clanletter wurde komplett neu programmiert

01.09 - » Command Board 1.0 - 2.0
Das Command Board 1.0 Beta 2.0 ist erschienen


Mehr

Forum
» Entwickler Forum

» insert nach login

» Tabellenzelle zu groß







© PHP-Einfach.de 2003 - 2012