我在讓用戶上傳圖片到我的應用程序時遇到了困境。我的主機允許無限制的存儲空間,但只允許250K個人文件。我在125K,我計劃發佈一個功能,允許用戶上傳圖片。如果我開始上傳大量圖片,我可以快速填充該配額。我想過把它們存儲在MySQL等數據庫中。這是一個可行的解決方案,還是僅僅是愚蠢的?如果它只是愚蠢的,那麼一些免費/廉價的選擇會是什麼?在數據庫中存儲大量圖像是愚蠢的嗎?
回答
是的,把圖像數據放在一個分貝將是一種愚蠢的。
我會看看使用像Amazon S3存儲的東西。
這是一個CodingHorror帖子,幾年前傑夫在這裏討論它。
使用數據庫顯然比使用文件系統慢。如果你已經有125k,也許使用VPS而不是託管是一個好主意。這是約5-10美元/星期一。
什麼?你可以在哪裏獲得5-10美元/月的VPS? – LordZardeck
http://www.hetzner.de/hosting/produkte_vserver/vq7(我用這個滿足我的小小需求) – Ximik
真是棒極了。我可能最終將其用於某些副項目。 – LordZardeck
我個人不會那麼做。它最終會在以後導致更多問題。 爲什麼不登錄http://www.000webhost.com/(或類似)並創建腳本來上傳圖片而不是服務器?這是我會做的。
或者,您可以開始設置圖片保存期限的限制嗎?並在x天后刪除它們?
您可以選擇將圖像存儲在CDN或s3之類的選項嗎?從服務器上獲取圖像並獲得快速基礎架構的好處。更多這裏:http://aws.amazon.com/cloudfront/
如果您需要保護圖像但更加可行,則會更復雜。
有很多很好的理由將圖像(或任何龐大的媒體文件)存儲在數據庫之外。
將將圖像存儲在數據庫中的原因是如果您需要圖像數據以使用SQL ACID語義。
例如,如果您在數據庫中插入一行但回滾,則您希望圖像數據也被丟棄。如果將圖像數據從外部存儲到數據庫,則必須清理孤立的圖像。 同樣,如果你從數據庫中刪除行,你也必須記得從磁盤或S3或其他東西中刪除它們。 同樣,如果你更新行,你會失去事務隔離,所以你有競爭條件。
如果您將圖像存儲在數據庫之外,還需要創建數據庫備份。不僅因爲現在您的備份是一個多步驟過程(備份數據庫,然後是備份映像收集),而且您也無法創建熱備份。在備份從數據庫複製數據的過程中,您的映像集可能會在分鐘內發生更改。
+1對於一些非常有用的信息。由於這不是一個重要的企業項目,我不認爲我必須擔心需要將圖像存儲在數據庫中。感謝分享! – LordZardeck
- 1. 將大量圖形數據結構存儲在數據庫中
- 2. 在數據庫中存儲圖像
- 3. 在數據庫中存儲圖像
- 4. 愚蠢的WPF數據綁定問題
- 5. 愚蠢的數學問題
- 6. Intelisense很愚蠢
- 7. 將大量圖像存儲在數據庫中?一個很好的體驗?
- 8. 愚蠢的JS FUNC
- 9. 我應該在SQLite數據庫中存儲圖像嗎?
- 10. 在android中存儲大量圖像
- 11. 是否存在從數據存儲庫/數據庫中持久存儲圖像的庫
- 12. 存儲大量圖像android
- 13. Phonegap數據庫問題 - 將圖像存儲在數據庫中
- 14. 愚蠢的組件應該如何「愚蠢」?
- 15. 在WAMP上開發LAMP是否愚蠢?
- 16. 愚蠢mod_rewrite問題
- 17. 愚蠢mysql_fetch_assoc():錯誤
- 18. 企業Java實體應該愚蠢嗎?
- 19. 在Mongo數據庫中存儲圖像文件,這是一個好主意嗎?
- 20. SQLite數據庫最大存儲容量
- 21. 是否需要將圖像路徑存儲在數據庫中?
- 22. 愚蠢的用戶可用的視圖?
- 23. 創建存儲過程的愚蠢錯誤
- 24. 使用@fontface在wordpress中的愚蠢questinmarks
- 25. 卡在Sid.js中很愚蠢的東西
- 26. 可以在會話中存儲大量的數據嗎?
- 27. jQuery:可能是愚蠢的問題,但
- 28. 存儲在數據庫中的MVC3高速緩存圖像
- 29. 在索引數據庫中存儲圖像數據
- 30. 將圖像數據存儲在MySQL數據庫中?
這看起來像我最好的選擇。它超級便宜。我認爲帶寬成本不會像我的存儲一樣成爲問題。 :P。非常感謝! – LordZardeck
不客氣! :) – tzaman