Postgres データベースに大きなファイル (数 MB から 1 GB) を保存する必要があります。データベースには複数のスキーマがあります。Postgres には、LOB と BYTEA という 2 つの大きなオブジェクトを格納するためのオプションがあるようです。ただし、これらのオプションのそれぞれに問題があるようです。
LOB。これはほぼ理想的に機能し、最大 2GB を格納でき、ストリーミングが可能であるため、LOB の読み取り時に PHP バックエンドでメモリ制限に達することはありません。ただし、すべてのブロブは pg_catalog に保存され、スキーマの一部ではありません。これは、オプション –n および –b を指定して pg_dump を使用し、ブロブを含む 1 つのスキーマだけをダンプしようとすると、大きな問題につながります。スキーマ データは正しくダンプされますが、特定のスキーマに属する BLOB だけでなく、データベース内のすべての BLOB が含まれます。pg_dump またはその他のユーティリティを使用して、単一のスキーマとそのブロブをダンプする方法はありますか?
BYTEA。これらはスキーマごとに正しく保存されるため、pg_dump –n は正しく機能しますが、データをストリーミングする方法が見つからないようです。これは、メモリ制限よりも大きい場合、PHP からデータにアクセスする方法がないことを意味します。
ストリーミングを可能にし、データベースごとに複数のスキーマで正しく動作する Postgres に大きなデータを保存する方法は他にありますか?
ありがとう。