質問

現在、JSP/サーブレットで開発されているWebアプリケーションがあります。
アプリケーションを使用すると、ユーザーが許可されます アップロード 各ユーザーアカウントの画像ファイル。

画像を保存する最良の方法は何ですか?
あなたの答えの前に私が望んでいる次の機能を考慮してください。

  1. 私は今MySQLを使用していますが、別のデータベースに移動する可能性がある可能性があります。

  2. 画像をフラットファイルとして保存できますが、 admin オプションがあるためのアカウント 完全なデータベースをバックアップします 後でリロードします。理想的には、バックアップ/リロードも画像で動作する必要があります。 (別の物理マシンからバックアップが行われ、リロードが別のマシンから行われたとしても)

  3. BLOB/CLOBを使用することは、問題2を解決するオプションです。
    しかし、 私のデータベースが非常に大きくなった場合はどうなりますか?

役に立ちましたか?

解決

それらをファイルシステムに保存します。より速く、よりシンプルです。多くの場合、画像にアクセスするときは、使用する前に画像をファイルに保存する必要があります。サードパーティのツールで画像を調べることができます。 RecordIDをファイル名に保存して、画像/レコードの関連付けが壊れないようにすることができます。

他の多くの人々はこの意見を共有しています: http://forums.asp.net/p/1512925/3610536.aspx

他のヒント

あなたの場合、私はあなたが持っていることを強くお勧めします blob データベースのフィールドをフィールドし、画像を保存します。主に、これはそうです 彼らのための正しい場所。したがって、データベースから指定されたユーザーの画像を取得するサーブレットを作成します。例えば、 /userimage?name=john.

あなたの「サイズ/パフォーマンス」の問題について:

  • 保存および交換するために(とりわけ)データベースが作成されました 大量のデータ.
    そう、 彼らは最良の選択肢です.

  • 他のサイトに保管しても、自由スペースとパフォーマンスを削減します。

  • もし、あんたが 本当 大規模なデータ(> = 3TB、ではなく3TB)を管理したい場合、ファイルシステムに保存して、dbのファイル名を保存できます。詳細については、をご覧ください この質問.

DBに保存するだけです...ユーザーベースが「非常に大きくなる」場合は、負荷を処理できるボールアウトデータベースサーバー(またはそれらの農場)を購入するために現金のバケツがあります。あなた?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top