7

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

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

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

  2. 画像をフラットファイルとして保存できますが、アカウントにデータベース全体をバックアップして後で再読み込みadminするオプションが必要です。理想的には、バックアップ/リロードはイメージでも機能するはずです。(バックアップが別の物理マシンから実行され、リロードが別のマシンから実行された場合でも)

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

4

3 に答える 3

6

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

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

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

  • 他のサイトに保存しても、空き容量とパフォーマンスが低下します。

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

于 2011-04-30T13:34:18.067 に答える
3

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

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

于 2011-04-30T13:43:48.003 に答える
-2

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

于 2011-04-30T13:35:30.960 に答える