Speicherplatz ausrechenen DB

harderph

Erfahrenes Mitglied
Moin
Gibt es eine möglichkeit die grösse der DB inhalte auszurechnen? Grund der frage ist: habe ein internenes postsystem gebastelt und wollte das begrenzen, also den user zwingen nach erreichen der vorgegebenen speichergrösse die post zu löschen!
Gibt es darüber ein tut oder hat jemand eine idee?
 
Wenn es nicht allzu komplex ist (wie zB ein einfaches PM-System), könntest du einfach die Anzahl an Datensätzen zählen, die zum entsprechenden User gehören via
SQL:
SELECT COUNT(*) FROM `table` WHERE `user` = 'userid';

Wenn es aber wirklich um das Volumen der Datenbank geht:
PHP:
<?php
// Für eine bestimmte Tabelle
$name      = "table";  // Tabellenname
$result    = mysql_query( "SHOW TABLE STATUS WHERE `Name` = '{$name}';" );
$tableinfo = mysql_fetch_assoc( $result );

$tablesize = (int) $tableinfo['Data_length'] + (int) $tableinfo['Index_length'];

// Für alle Tables in einer Datenbank
$result = mysql_query( "SHOW TABLE STATUS;" );
$size   = 0;

while( $current = mysql_fetch_assoc( $result ) ) {
    $size += (int) $current['Data_length'] + (int) $current['Index_length'];
}

Mittels SHOW TABLE STATUS bekommt man eine hübsche Auflistung aller Tabellen in der entsprechenden oder in der via FROM festgelegten Datenbank. Diese Ergebnisse muss man nur wie im Beispiel filtern und weiterverarbeiten.
 
Was muss ich denn machen damit der speicherplatz pro user angezeigt wird! Arbeite mit session und möchte gerne das wen user "a" in sein PM-berreich geht sein speicherplatz auch angezeigt wird nach vorgabe (z.b. ich gebe jeden user 5 MB)!
 
Zurück