Datensatzgröße bestimmen....

malibubu

Mitglied
Hallo Zusammen,

ich programmiere grade für meine community einen "PN-Versand", womit sich die user untereinander Nachrichten schicken können.

Diese werden wie folgt in eine MySQL-Tabelle eingefügt:

| ID | UID | FROM | SUBJECT | TEXT | ANHANG | ANHANGTYP | TIME |

ID: autoincrement...
UID: Die entsprechende Userid
From: Userid des Absender
ANHANG: Blob (Für Dateianhänge)
ANHANGTYP: Dateityp des Anhangs.

Nun möchte ich eine Speicherbegrenzung für jeden User einbauen (bspw. 5 MB).

Wie errechne ich (bzw. mit welchen MySQL-Query errechne ich die Summe der Datensatzgrößen für den einzelnen User (Berücksichtigt werden sollen nur Text und Anhang!).

Vom rein theoretischen sollte er so aussehen:

"SELECT sum(groesse(text), groesse(anhang)) FROM table WHERE uid='X'"

Danke im Voraus.
 
Es gibt in MySQL die Funktion LENGTH. Allerdings bin ich mir nicht sicher, ob die auch bei BLOB-Feldern funktioniert. Ein Versuch ist es aber wert:
Code:
SELECT 
SUM(LENGTH(text)) + SUM(LENGTH(anhang))
    AS Speicherbedarf
FROM table WHERE uid='X'
Gruß hpvw
 
Da LENGTH die Anzahl der Zeichen zählt ist das Ergebnis vermutlich in Byte. Das solltest Du aber noch mit Testdatensätzen gegenprüfen.

Gruß hpvw
 
Zurück