11

私の特定の状況

ユーザーが写真やリース書類をアップロードできるプロパティ管理 Web サイト。アパート ユニットごとに 4 枚の写真がある可能性があるため、システム内に圧倒的な数の写真が存在することはありません。

写真については、それぞれのサムネイルがあります。

私の質問

私の最優先事項はパフォーマンスです。エンド ユーザーのために、できるだけ早くページを読み込んで画像を表示したいと考えています。

イメージをデータベースまたはファイル システム内に保存する必要がありますか、それとも問題ではありませんか? 何かをキャッシュする必要がありますか?

前もって感謝します!

4

6 に答える 6

3

必ずファイルシステムに画像を保存してください。これらの種類のことを検討するときに人々が十分に考慮していない懸念の 1 つは、肥大化です。イメージをバイナリ BLOB としてデータベースに詰め込むことは、DB を肥大化させる非常に簡単な方法です。大規模なデータベースには、より高いハードウェア要件、より困難なレプリケーションおよびバックアップ要件などが伴います。イメージをファイルシステムに貼り付けるということは、多くの既存のツールを使用してイメージを簡単かつ簡単にバックアップ/複製できることを意味します。同様に、データベースよりもファイルシステムの方がストレージ容量を増やす方がはるかに簡単です。

于 2009-07-09T17:48:56.150 に答える
2

シーピーの答えにコメントしてください。

一般に、ファイルサイズが256キロバイト未満の場合はSQLにファイルを保存する方が適切であり、1メガバイトを超える場合は価値があります。したがって、256〜1024キロバイトの間では、いくつかの要因に依存します。SQLまたはファイルシステムを使用する理由の詳細については、これをお読みください。

于 2013-01-29T06:40:03.710 に答える
1

少し関係が異なるかもしれませんが、MySQL カンファレンスのこのビデオでは、司会者が Web サイトsmugmugがどのように MySQL やその他のさまざまなテクノロジを使用して優れたパフォーマンスを実現しているかについて語っています。このビデオは、ここに投稿されたいくつかの回答に基づいていると思いますが、DB の範囲外で Web サイトのパフォーマンスを改善する方法も提案しています。

于 2009-07-09T22:12:14.620 に答える
1

DBは一部の操作でファイルシステムよりも高速である可能性がありますが、十分に識別された数百 KB のデータのチャンクをロードすることはそれらの 1 つではありません。

また、優れたフロントエンド Web サーバー (nginx など) は、DB から BLOB を読み取るために作成する必要がある Web アプリケーション レイヤーよりもはるかに高速です。一部のテストでは、nginx は、中サイズのファイル (大きな HTML や中サイズの画像など) の生データの提供に関して、memcached とほぼ同等です。

FSに行きます。コンテストなし。

于 2009-07-09T17:58:11.670 に答える