jcobyの答えについて:
bytea が「通常の」列であることは、フェッチ時に値が完全にメモリに読み込まれることも意味します。対照的に、ブロブは標準出力にストリーミングできます。これは、サーバーのメモリ フットプリントを削減するのに役立ちます。特に、4 ~ 6 MPix の画像を保存する場合。
BLOB のバックアップに問題はありません。pg_dump は、大きなオブジェクトをバックアップに含めるための「-b」オプションを提供します。
したがって、私は pg_lo_* を使用することを好みます。
再クリス・エリクソンの答え:
私は反対だと思います:)。保存するデータが画像だけでない場合は、どうしても必要な場合を除き、ファイル システムに保存しないでください。データの一貫性を常に確保し、データを「一体型」(DB) に保持することは、非常に大きなメリットです。ところで、PostgreSQL は一貫性を維持するのに優れています。
しかし、実際には、多くの場合、パフォーマンスが要求されすぎることが多く、ファイル システムからバイナリ ファイルを提供する必要があります。しかし、それでも私はDBをバイナリの「マスター」ストレージとして使用し、他のすべての関係を一貫してリンクし、パフォーマンスの最適化のためにファイルシステムベースのキャッシュメカニズムを提供する傾向があります。