私は、ユーザーが小さな画像を見ることができるシンプルなシステムを作成しています。その画像の名前を検索ボックスに入力します。最も効率的な方法で画像を保存する方法を決定するのに問題があります。私は3つの解決策を考えている、と私は、この問題に対する最善の解決策である1疑問に思って:データベースに画像を保存するサーバー対Fileserverとサーバー上のZipファイル
データベース内の塊やbase64文字列として画像を保存するとしてユーザの入力に基づいて画像をロード簡単なクエリ。このようにすると、データベースの負荷が増加し、ロード時間が長くなります。
イメージをファイルサーバーに別々のファイルとして保存する。そして、それを読み込むには、ユーザー入力に基づいてimage.src属性を割り当てます。image.src = "./server/images/" + userInput;しかし、このようにすると、サーバー上のファイル要求の数が増えるため、より高価になります。
最後に、イメージをファイルサーバー上の1つのzipファイルに保存することができました。プログラムの開始時にすべてを一度にダウンロードしてください。これの利点は、ページをロードするときに1つのリクエストのみが存在することです。ただし、すべてのファイルをロードするのに時間がかかります。
各画像のサイズは約1〜3KBです。また、すべてのイメージは手動でserver/dbに置かれます。さらに、最大約100-200の画像が表示されます。だからこれらのすべての考慮事項はあまり重要ではないかもしれません。しかし、私はこれを行うための推奨される方法が何であるか知りたい。
注:私が実行しているサーバはAWSサーバです。要求が多すぎるとサーバのコストが高くなることがわかりました。これが私がアプローチnrに懐疑的である理由です。 2
#3はおそらくノースタータです。 10Kの画像があり、ユーザーが1K(または500など)を表示するとどうなりますか?ほとんどのコンテンツが使用されていないファイルを転送するために帯域幅を使用しました.zipファイルから*表示されているファイルを探し出し、読み込めるディスク上の一時ファイル見る。また、画像の追加や削除時にzipファイルを更新する際のオーバーヘッドや複雑さも加わりました。 –
約100枚の画像しかありません。しかし、あなたが言ったことはまだ適用されます。いい視点ね。 –
あなたの注意する限り、どちらの場合でも、要求がDBから、またはディスクからイメージをロードするかどうかにかかわらず、同じ数の要求を持つことになります。 –