Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: Tabellengröße begrenzen

  Alt 21. Sep 2009, 20: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
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat