alsio ich habe eine PG Datenbank (V8.1) in welcher ich sehr viele Bilder speichere. Pro Tag sind es ca. 4000 Bilder die hinzu kommen ein Bild hat eine größe von ca. 400kb. Mit einem zusatzprogramm lasse ich alle Bilder kompremieren die länger als 2 Monate in der DB liegen. Ein kompremiertes bild hat eine größe von rund 40kb (von 400kb).
Die speicherangaben sind nicht von der DB gemessen sondern vom Windows Filesystem sollte aber denke ich in der DB gleich sein.
Das Feld in welchem die Bilder gespeichert werden ist vom Typ Blob.
So nun läuft die DB schon ca. 2 Jahre.
Autovacuum ist aktiv.
Über das manuelle Vaccum habe ich schon einiges gelesen…
Aber wie ist das wenn ich nur ein normales Vaccum mache (kein FULL) wird dann auch der platz den ich durch die kompremierung heraushole freigegeben? Oder wird das nur bei einem Vacuum Full gemacht?
Die Datenbank hat somit nun eine größe von ca. 160GB.
Gibt es hierbei was was ich beachten sollte?
Spezielle Einstellungen oder so?
Komprimiert. Egal. Speicherst Du Bitmap-Bilder ab, und wenn ja, warum?
Die speicherangaben sind nicht von der DB gemessen sondern vom Windows Filesystem sollte aber denke ich in der DB gleich sein.
Das Feld in welchem die Bilder gespeichert werden ist vom Typ Blob.
So nun läuft die DB schon ca. 2 Jahre.
Autovacuum ist aktiv.
Über das manuelle Vaccum habe ich schon einiges gelesen…
Aber wie ist das wenn ich nur ein normales Vaccum mache (kein FULL) wird dann auch der platz den ich durch die kompremierung heraushole freigegeben?
Ja. Für neue Datensätze.
Oder wird das nur bei einem Vacuum Full gemacht?
Die Datenbank hat somit nun eine größe von ca. 160GB.
Gibt es hierbei was was ich beachten sollte?
Spezielle Einstellungen oder so?
Grüße
Matrix
Es gibt da Pro und Contra, was das Speichern in der DB versus im Filesystem betrifft. Das wurde aber bereits an so vielen Orten durchgekaut, daß ich das hier nicht wiederholen mag.
Ich speichere die BIlder (jpeg) in der DB weil ich gedacht habe, dass in der DB ein bild zu suchen schneller geht als auf dem Filesystem (bei ca. 600000 Bildern (steigend))
Das ‘suchen’ anhand von Metadaten sicher, aber Deine Applikation zerrt das Bild durch die DB und diese aus dem Filesystem. Daher gibt es eine Reihe von Leuten, die der Meinung sind, Bilder NUR im Filesystem zu speichern und lediglich die Metadaten (nach denen auch gesucht wird) in die DB zu packen.
Gegner dieser Idee argumentieren, daß es leichter sei, ein in sich komplettes Backup zu fahren. Recht haben beide. Man muß halt schauen, was für einen wichtiger ist.
Wenn man 600.000 Bilder in einem Verzeichnis ablegt, werden die meisten Dateisysteme Probleme bekommen. Aber mit einer geeigneten Struktur sollte das gut hinzubekommen sein. In der DB speichert man dann nur, wo die Datei liegt.
Mit etwas Nachdenken bekommt man das auch transaktionssicher hin.
Wir haben das auf mehreren Plattformen so laufen und funktioniert gut und performant. Wem darf ich das also verkaufen?