2016-06-29 8 views

答えて

0

最速の方法は、メインメモリになります。しかし、イメージは大きなファイルであり、メインメモリは限られており、リブートの間は永続的ではないため、これはおそらく実用的ではありません。それらをディスクに保存する必要があります。

私は非常に、データベース内のブロブとして画像を保存に対してお勧めします。

+0

私はminファイルシステムを保存する必要がありますか?それらをblobとしてデータベースに格納するのではなく、 – Calvin

+0

ユースケースを説明してください。あなたは何を作っているのですか? –

+0

私は、ユーザーがfacebookのようなカバー写真とプロフィール画像でプロフィールを作ることができるアプリケーションを構築しています。それ以外の場合、ユーザーは3つの画像を表示できる3つの画像のギャラリーを作成することができます。彼らは彼らが望むだけのギャラリーを作成することができます。 – Calvin

-1

私がやることは、それらをディスクに保存し、誰かがそれらを要求し、毎回更新されるメモリをクリアする前にDBのイメージを与えると、Redisのようなメモリ内のデータベースを使ってメモリにキャッシュすることですその同じ画像の要求が再度出てきます(最も簡単に行われることがあります)。その結果、最もよく見られる画像は常にキャッシュされ、ユーザーに高速に表示されますが、余分なメモリスペースは使用されません。

ページでは、いくつかの長い巻物がある場合は、最初のフィードバックは少し速くなるように、また、徐々にそれらをロードすることができます。

+0

それは実際に格納されているイメージの量とメインの量に依存しますサーバー上のメモリー。ラムは安くはないので、これは推奨される解決策ではありません。究極の質問は、その余計なパフォーマンスがどれくらい重要か、それにどれくらいの費用を払うことですか? –

+0

もし彼が4GBのRAMを持っていて、RAMにオペレーティングシステムやその他のオーバーヘッドがないとすれば、4000個の1MBイメージしか保存できないと言います。それは決して増加しないであろう非常に少量の画像を保存していない限り実行可能な解決策ではありません。 –

+0

なぜ私は彼が一生のうちにキーを渡すべきだと言っているのですか?定期的に4000枚の画像が見える可能性は非常に低く、メモリに絶えず生き続けるために必要なユーザー数があればより多くのラムを買う余裕があります。キーの寿命は非常に短く、ほぼ常に人気のある画像しかほとんどすべてキャッシュされます。 –

0

は、ファイルシステム上の画像を置くことを恐れてはいけません。データベースに直接入れるのは悪い習慣です。それはデータベースサーバーを傷つけるでしょう。代わりに、イメージのパスをデータベースに格納します。

本当にスピードアップしている場合は、キャッシュするか、CDNを使用してください。また、CDNは実際にはいくつかの場所で負荷をスピードアップしないかもしれないことに注意してください。

CDNサーバーが米国のみの場合(たとえば、考えてみるなど)、米国にいるとうまくいくでしょう。それ以外の場合は、遅くなります。

速度にも影響を及ぼすのは唯一の場所で、サーバーのディスク速度も速度に寄与します。システムがSSD上にある場合は、それも速いでしょう。

関連する問題