2010-09-29 151 views
3

可能重複:
Storing Images in DB - Yea or Nay?
Saving images in database mysql將圖片存儲在數據庫中?

我有一個網站,用戶可以上傳個人資料圖片和相冊。現在我開始想知道是否將圖片保存到數據庫中,或者文件操作仍然可以,因爲它變得更大? 我在像社交網絡這樣的巨大規模中思考,存儲在文件中的數億張圖片對我來說似乎很瘋狂,所以我確定它必須以其他方式存儲?

任何建議或指導。 謝謝

+1

也可以考慮閱讀這個其他粉絲最喜歡[儲蓄圖像在數據庫中的MySQL](http://stackoverflow.com/questions/2753193/saving-images-in-database-mysql) – 2010-09-29 03:57:41

回答

4

這兩種方法都有優點和缺點。數據庫對於存儲大量數據塊並不太好。這樣做往往會耗盡數據庫上的大量資源(CPU,內存,硬盤驅動器空間和數據庫與Web服務器之間的網絡帶寬)。它會使數據庫備份大得多。

然而,在一個單獨的文件系統上存儲圖像的大問題(在Web服務器上說的)是,它是更加難以將其與在數據庫中的數據同步。如果用戶在一個數據庫備份是怎麼回事,誰知道你會到底是什麼狀態了變化的照片。如果你需要從備份恢復數據庫,這將是非常難以同步上漲的圖像。如果您不小心,還可能會在浪費磁盤空間的環境中掛起孤立的圖像。

恕我直言,這是太多精力來維護數據庫和文件系統之間的數據的完整性,所以我將它們存儲在數據庫中扔些錢的硬件,以便它可以跟上。

8

將它們存儲在您的網絡服務器上,並在您的數據庫中的URL將是一個更好的主意。它也使修改圖像變得更容易。

+0

是 - 如果不是Web服務器至少在靜態CDN上。 – RPM1984 2010-09-29 03:59:08

1

保存你的照片在你的網絡服務器,因爲你要開發社交網站,所以這將是一個巨大的數據庫負擔。因爲有時你必須處理++ MB的圖片。因此只在BD中存儲鏈接。

從文件你可以很容易地玩圖片,甚至可以輕鬆地遷移它們,而不會對數據庫產生任何影響。