2017-05-24 7 views
0

データウェアハウスに大きなファイル(約1Go)を格納する必要があります。グローバルコンテキストを簡単に説明するには:ユーザーがWebビューでいくつかのオプションを選択し、ミドルウェアに送信します。ミドルウェアはこれらの情報を使用し、新しい情報を工場に送信します。ファクトリは1Goファイルを作成します。今度は、ユーザーが後でダウンロードするためにデータウェアハウスに格納する必要があります。データベース内のBLOBフィールド、または直接1Goファイルのファイルシステム内のフィールド?

ミドルウェアにはフレームワークdjangoを使用していますが、工場はPythonでプログラミングされています。

私の質問です:このサイズのファイルの場合は、データベースのblobフィールドに格納する方が良いでしょうか?それとも、ファイルシステムに直接格納する方が良いでしょうか?

+0

この[質問](https://stackoverflow.com/questions/11438486/database-blobs-vs-disk-stored-files)には、ファイルシステムとブロブの賛否両論のいくつかが含まれています。 –

+0

[データベースからベース64イメージを選択してエンコードするとスローネスが検出されました](https://stackoverflow.com/questions/41228496/slowness-found-when-base-64image-select-and-encode-from-データベース) – e4c5

答えて

0

BinaryFieldを使用してblobをデータベースに格納すると、クエリセットがさらに多くのデータを処理する必要があるため、アプリケーションのパフォーマンスが低下します。最良の方法は、ブロブを別々のファイルに保存し、データベースにmodels.FilePathField()フィールドを使用してファイルパスを保存し、実際のイメージを静的ファイルとして提供することです。詳細については、this投稿を参照してください。

+0

ありがとうございました。私はあなたのソリューションをまっすぐに見に行きます。私は明日あなたの答えを検証して、他の意見を得ることができるかどうかを確認します。しかし、感謝:) – neli

関連する問題