Antwort von Re jcoby:
bytea als "normale" Spalte bedeutet auch, dass der Wert beim Abrufen vollständig in den Speicher eingelesen wird. Im Gegensatz dazu können Sie Blobs in stdout streamen. Dies hilft bei der Reduzierung des Speicherbedarfs des Servers. Besonders, wenn Sie 4-6 MPix-Bilder speichern.
Kein Problem beim Sichern von Blobs. pg_dump bietet die Option "-b", um die großen Objekte in die Sicherung aufzunehmen.
Ich bevorzuge also die Verwendung von pg_lo_ *.
Antwort von Re Kris Erickson:
Ich würde das Gegenteil sagen :). Wenn Bilder nicht die einzigen Daten sind, die Sie speichern, speichern Sie sie nicht im Dateisystem, es sei denn, Sie müssen dies unbedingt tun. Es ist von großem Vorteil, immer sicher zu sein, dass Ihre Daten konsistent sind, und die Daten "in einem Stück" (der DB) zu haben. Übrigens ist PostgreSQL hervorragend geeignet, um die Konsistenz zu erhalten.
Allerdings ist die Realität oft zu leistungsintensiv ;-), und Sie müssen die Binärdateien aus dem Dateisystem bereitstellen. Aber selbst dann neige ich dazu, die Datenbank als "Master" -Speicher für Binärdateien zu verwenden, wobei alle anderen Beziehungen konsistent verknüpft sind, und gleichzeitig einen dateisystembasierten Caching-Mechanismus zur Leistungsoptimierung bereitzustellen.