Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.166 Beiträge
 
Delphi 12 Athens
 
#3

Re: Tabellengröße begrenzen

  Alt 21. Sep 2009, 19:55
Code:
[b]Tabelle "Cache"[/b]
Name VARCHAR(31) UNIQUE KEY
Time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
Size INT
Data TEXT
Hash CHAR(32)
Size entspricht sozusagen Length(Data)

wenn ich z.B. diese Daten in der Tabelle hab (Datum/Zeit vereinfacht)
> schon nach Datum sortiert, da das Neuste ja immer angehängt wird
Code:
Name Time Size ...
A   1°°   123  ...
B   2°°   345  ...
C   3°°   234  ...
D   4°°   111  ...
E   5°°   432  ...
F   6°°   789  ...
G   7°°   333  ...
H   8°°   123  ...
und die Größe auf 2000 begrenzen möchte

Alles = 2490
H bis C = 2022
H bis D = 1788

Also müßte hier A-C gelöscht werden, damit die Größe wieder unter die 2000 kommt

also von unten her alles drin lassen, bis die Summe der Size-Felder die Grenze erreicht und ab da den Rest löschen.


[add]
mir fällt grad ein, ich könnte, falls es so nicht geht,
mit einem Durchschnitt rechnen
Sum(Size) / Count(*) = Durchschnittliche größe der Einträge
Sum(Size) - Grenze = was zuviel ist
(Sum(Size) - Grenze) / (Sum(Size) / Count(*)) wäre dann doch die Anzahl der zu löschenden Einträge
also nach aufsteigend nach Datum sortieren und die ersten X Datensätze löschen

ich glaub ich versuch's erstmal so, auch wenn so die größe mal überschritten werden kann, falls sich keine Lösung findet
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat