私はシリアル化されたオブジェクトをどこかに保存したいと思っています。これを行う方法はいくつかあります。postgresqlは、シリアル化されたオブジェクトを格納するためにbytea BLOBまたはファイルの場所を使用しますか?
私はファイルシステムのどこかにファイルを格納し、ファイルの場所をテーブルのエントリとして保存しています。
ファイルが約100-500Kbであると仮定すると、これは適切な方法ですか?または、より良い解決策であるbyteaまたはblobを使用しますか?
私はシリアル化されたオブジェクトをどこかに保存したいと思っています。これを行う方法はいくつかあります。postgresqlは、シリアル化されたオブジェクトを格納するためにbytea BLOBまたはファイルの場所を使用しますか?
私はファイルシステムのどこかにファイルを格納し、ファイルの場所をテーブルのエントリとして保存しています。
ファイルが約100-500Kbであると仮定すると、これは適切な方法ですか?または、より良い解決策であるbyteaまたはblobを使用しますか?
小規模なオブジェクト(500Kb)は、バイトアとして正常に動作します。サイズの主な制限は、まずサーバーで、次にクライアントでフィールド全体を実現する必要があるということです(それは方法がありますが、限られています)。半分のメガバイトのために、それは問題ではありませんが、はるかに大きなオブジェクトを格納し始める場合は、いくつかの考慮が必要かもしれません。
これをファイルシステムに格納し、場所を格納する(またはSERIALシーケンスから代理プライマリキーで名前を付けて保存する)ことは、大きなファイルを処理するのに適しています。欠点は、トランザクションの整合性が失われていることです(ファイルシステムとデータベースの両方が更新されたことを確認できないため、これらを比較するために定期的に実行する検証ツールを実装する必要があります)一貫性のあるバックアップを取得する(ファイルがバックアップされていて、dbレコードではない場合、それ以外の場合はどうなるでしょうか)これにも対処する方法はありますが、データを保存するよりもはるかに複雑になりますテーブル。