2012-05-14 14 views
2

この質問はここでさまざまな方法で聞かれたことは知っていますが、その答えのどれも決定的なものではありません。写真をMySQL DBに保存するとファイルとして保存する

私は、とりわけウェブサイトギャラリーを更新するシステムを持っています。 ファイルをウェブサイトにアップロードして(必要に応じてシステムにコピーを保存する)必要があります。または、DBに保存してスペースを保存してください。私がファイルを持って行くならば、DBに変更を加えるだけでなく、すべての変更(画像の削除、追加または変更)のWebページに「通知」する必要があります。だから、

  1. 我々は画像ギャラリーを標準のウェブサイトについて話している場合、それは写真として、あるいはDBに画像を保存するのがベストでしょうか?
  2. ウェブページが非常に訪問されている、または非常に大きい場合、それは何か違いがありますか?

違いはありますか?または、便利な方法で行くだけですか?

私は私の場合を提示しましたが、ファイルの保存について話す際には、「より一般的な」答え、「良い」アプローチがあります。

これを明確にするために事前に感謝します。

Michel

+0

[PHPでMySQLに画像を保存するかどうかは可能ですか?](http://stackoverflow.com/questions/527801/php-to-store-images-in-mysql-or-not) - 実際にはPHPその名前にもかかわらず、 – eggyal

+0

関連(重複?):[データベースmysqlの画像を保存する](http://stackoverflow.com/questions/2753193/saving-images-in-database-mysql) – mkjeldsen

+0

どちらも同じではありません。ここでの問題は、ピクチャの変更を制御する簡単な方法がないことです。画像がアップロードされている場合、システムはAJAXに 'get_file_contents'を作成して画像を保存するウェブサイトを必要とします。画像が変更されている場合、私は削除する必要がありますし、新しいものなどを保存します。私はそこに読んだ答えの両方は、そのような心配はありませんでした。 – Phoenix

答えて

0

構造化データのみをDBに格納します。イメージはファイルであり、ファイルシステム上に保持する必要があります。画像/ユーザーの数が増えるにつれて、DBのパフォーマンスはますます低下します。代わりに、イメージの場所とメタデータを追跡するために使用できるイメージオブジェクトを作成します。

0

以前の私のプロジェクトでも同じ問題がありました。

データベースの画像のパス(単なる文字列)を保存しておき、DBではなくファイルシステムに保存することに決めました。

これは多くの点でベストプラクティスです。 DBを小さくして、大量の行を高速に取得し、DBバックアップを大幅に小さくします。

イメージをファイルに保存し、DBにパスを保存して後で取得できるようにするだけです。

+0

これは、レプリケーションの場合には機能しない可能性があります。ファイルパスのみが複製され、データは複製されません。 –

+0

実際、ファイル名は異なっていなければなりません。それ以外の場合は動作しません。 – hermann

関連する問題