2011-12-15 14 views
2

可能性の重複:
Storing Images in DB - Yea or Nay?イメージをDbまたはサーバーに保存しますか?

私はいくつかの情報をアップロードするためのフォーラムを持っていますasp.net MVCのサイトを作っています。私はそれがイメージをアップロードすることができるようにしたい。しかし、私はこれらのイメージをデータベースに保存するか、ファイルサーバーに保存するかどうかはわかりません。

200Kbを超えるイメージは表示されません(これはおそらく非常に高いです)。私は平均が50kbの下になると思う。

だから、何が良いですか?

答えて

3

はあなたの価値何に依存し、どのようなあなたも一緒にやっている:

画像をデータベースに:

関連するデータ、データを別のものに移行されたときに外れるのチャンスがないと
  • ライブいずれかの偶然または故意
で操作するのが難しく(彼らはデータベースですべてだから)をバックアップすることが容易にシステム
  • より安全、 DBサーバのストレージ上のファイルシステム

    • 保存空間上枚の

      画像 - あなたはDBスペース

    • を払っ 共有環境での容易なコードで
    • を取得しやすくしている場合は重要であるかもしれませんhtmlでの参照

    すべての状況で「最良の」アプローチがあるとは思っていませんが、Webサイトの場合はファイルシステムが私にとって意味があるようです。

  • 3

    個人的に私は、サーバーにイメージを格納してから、テーブルに保存されたそれぞれのパスを持つことを選択します。パフォーマンスはそれがはるかに良いことができます賢明。

    1

    私は数年前に不動産アプリケーションを開発し、各プロパティの画像をデータベースに保存することを選択しました。パフォーマンスは恐ろしいものでした。その後、ファイルシステムにイメージを保存するように変更しました(これは実行にはかなり時間がかかりました)、パフォーマンスははるかに高速でした。

    データベースに格納する必要があるアイテムは、大きなテキストドキュメントだけで、SQL Serverの全文検索などの用途に使用できると言います。しかし、私はデータベースに画像を保存することは決してありません。特に、1ページに複数の画像がある可能性がある場合は特にそうです。

    URLをデータベースに格納し、ファイルシステムからイメージを取得します。

    +0

    私は約5 syears前にCMSを開発しました。私たちは陽性感覚でテフォリビックを発見しました。データベース内のバイナリデータを効率的に処理する方法を知らないのではないでしょうか? – TomTom

    5

    これらの画像へのアクセスを制御する必要がない場合(つまり、ロールベースではなく公開されている場合)、それらの画像をサーバーに保存し、データベースのパスへのリンクを保持します。

    DBソリューションの問題は、ストリームアウトする必要があることです。たくさんの画像を持つフォーラムページでのパフォーマンスの低下かもしれません。

    私はいつも言っているように、なぜWebサーバーがそれをもっとうまくできたらファイルを提供するのか?

    +1

    +1そして、あなたは(これらの画像をアップロードするだけでなく、それらの画像を表示していると仮定して)画像がブラウザ側にキャッシュされているという利点があります(モデル/ビューモデルからブラウザに画像を取得すると、アクション)。 –

    1

    私は、効率的なストリーミングベースのSQL Serverデータベースからのメディアの格納と検索のソリューションの例を持っています:Download and Upload Images from SQL Server via ASP.NET MVCとフォローアップFILESTREAM MVC: Download and Upload images from SQL Serverです。

    To BLOB or not to BLOBとお読みください。

    私がアドバイスしたのは、メディアをファイルシステムに保存する特別な理由がない限り、私のアドバイスです。 HHTTPサーバーはファイルを単にストリーミングするだけで非常に効率的です。 DBを使用する具体的な理由は、アクセス制御、自己完結型バックアップ復元、DBを中心とした高可用性/災害復旧ソリューションなどです。

    そして、最も速い応答は、ブラウザが尋ねることがないことを忘れないでください:) c aching tagsをあなたの回答に使用してください。

    関連する問題