我正在創建一個簡單的系統,用戶可以通過在搜索框中輸入該圖像的名稱來查看小圖像。我無法決定如何以最有效的方式存儲圖像。我想到的3個解決方案,我想知道哪一個是對這個問題的最佳解決方案:將圖像存儲在數據庫vs文件服務器上與服務器上的Zip文件
存儲圖像的斑點或Base64串在一個數據庫和基於與用戶輸入加載圖片簡單的查詢。這樣做會增加數據庫的負載並導致更長的加載時間。
將圖像作爲單獨文件存儲在文件服務器上。通過根據用戶輸入分配image.src屬性來加載它:image.src =「./server/images/」+ userInput;然而,這樣做會增加我服務器上的文件請求數量,所以它會更加昂貴。或者最後,我可以將圖像存儲在文件服務器上的一個zip文件中。在程序開始時立即下載。這樣做的好處是,加載頁面時只會有一個請求。但是,加載所有文件需要一些時間。
請注意,每個圖像的大小約爲1-3KB。所有圖像將手動放置在服務器/數據庫中。此外,最多隻有100-200幅圖像。所有這些考慮可能無關緊要。但我想知道推薦的方法是什麼。
注意:我運行的服務器是AWS服務器,我發現請求太多會增加服務器的成本。這就是爲什麼我對方法nr懷疑。 2
#3很可能是一個不起動。如果你有10K圖像並且用戶只能查看1K(或500,或其他),會發生什麼?您已經使用帶寬來傳輸絕大多數內容從未使用的文件,並增加了將從zip文件查看的*文件定位和提取到磁盤上可加載的臨時文件的開銷觀看。您還添加了在添加或刪除圖像時更新zip文件的開銷和複雜性。 –
只有大約100張圖片。但是你所說的話仍然適用。好點子。 –
至於你的筆記,無論是請求從數據庫還是從磁盤加載圖像,你都會有相同數量的請求。 –