2010-03-03 57 views
4

我知道可以將圖像作爲二進制大對象存儲在數據庫中。但我曾經在一些論壇的Web應用程序中看到,它們作爲平面文件存儲在Web服務器計算機中,並在需要時進行檢索。在數據庫中存儲圖像vs在文件夾結構中

這兩種方法的優點和缺點是什麼?

什麼時候採用哪種方法?

+0

有很多關於這個問題的討論... – Lucas 2010-03-03 12:54:07

回答

6

像往常一樣,這取決於。您需要考慮圖像的使用模式以及您的DBMS提供的功能。

在數據庫中存儲的圖像:

的觀光

  • 如果圖像是要與數據庫中的實體(比如用戶)相關聯,該數據庫可以把保持該護理關係。另一方面,如果圖像不與數據庫中的任何內容相關聯,則可能不希望將它們存儲在數據庫中。
  • 如果你的數據庫支持它,你將能夠在一個事務內處理文件(我相信MS SQL 2008支持這個,我不知道其他人是否會這樣做)。
  • 如果您需要存儲每個圖像的多個版本(比如說,因爲它們隨時間而改變),那麼在數據庫中執行操作可能會比在文件系統上更容易。

缺點

  • 你會投入大量應變的數據庫。
  • 備份數據庫可能需要很長時間。

在磁盤上存儲的圖像:

的觀光

  • 進行備份是微不足道
  • 檢查圖像等只是需要一個文件瀏覽器,無需數據庫客戶端

CONS

  • 根據您在圖像上執行的操作,使數據庫的圖像集合視圖和磁盤上的實際內容保持同步可能並不重要。

當然,如果您存儲大量圖像,所有這些問題都特別有效。

0

平面文件更適合於在Web上呈現圖像 - 它們對服務器的影響要低得多。 OTOH他們不支持交易(實際上你可能會用異質交易來做),你的數據不再在一個地方。

相關問題