2014-02-21 72 views
0

我想創建一個圖片庫,顯然它必須包含圖片。哪個更好地存儲和檢索圖像?

不知何故,我一直想知道將圖像存儲在目錄中並逐個檢索它們或將它們作爲BLOB數據存儲在數據庫中會更好嗎?

謝謝你們!乾杯!

我願意學習任何一種方法,所以請賜教。

+0

希望這會幫助你http://stackoverflow.com/questions/3748/storing-images-in-db-yea-or-nay –

+0

[在DB中存儲圖像 - 是或否?](http://另請參閱:[要做還是不做:將圖像存儲在數據庫中](http://stackoverflow.com/questions/zh-cn/library/default.aspx) 815626 /待辦事項或待辦事項 - 數據庫中的圖像) –

+0

「將數據庫中的文件鏈接保存爲」與將圖像存儲爲BLOB數據相同? – witherwind

回答

-1

首先,您需要在任何預定義的文件夾中上傳文件,並且您可以將該文件的名稱存儲在數據庫中(使用的是varchar數據類型)。

而當您將獲取這些記錄時,請使用該名稱在需要應用程序的位置重新創建圖像路徑。

0

這個問題已經討論了很多年。倡導者將爲每個人提供強有力的案例。在任何情況下,任何一方都不會被證明是正確的。

當您需要倉庫的圖像數量變得非常大時,這兩種方法都會崩潰。多年來,數據庫和文件系統都變得更好了,因爲我的工作臺標記了兩種選擇。那時,你可以通過創建目錄的層次結構來修復「文件系統」選項中的性能問題,而不是將它們全部放在一個目錄中。到目前爲止,文件系統可能已經過優化,以便在目錄條目數量變大時不會窒息。

這確實是「您的里程可能會有所不同」的情況。因素將包括您將使用哪種文件系統,您將使用哪種數據庫引擎,多少圖片,平均大小?你會「標記」數據庫中的圖像以及存儲它們嗎?

通常情況下,您必須嘗試所有選項,直到找到可在您的配置中工作的東西。

絕對壓力測試它。如果您認爲需要存儲一百萬張圖片,請不要用五個圖片進行測試,並假定它會縮放。 使用至少一百萬張圖片進行測試,如果沒有兩百萬或五百萬張圖片的話。這就是說,如果你只需要存儲1000張圖像(或更少),甚至可能是10k或更少,並且如果你需要按照日期,位置,主題等屬性對圖像進行索引,那麼存在冒犯的風險許多好的人,我會建議將圖像作爲blob存儲在數據庫中。使用數據庫將圖像連接到元數據的便利性將超過任何人在此規模下的性能問題。當您使用指向文件系統中的文件的指針將元數據存儲在數據庫中時,事情很容易失去同步。文件被移動,重命名,刪除等;你的數據庫不知道,現在你的系統壞了。 使用數據庫將確保您的數據的完整性,包括您的圖像。

+0

「保持數據庫中的文件鏈接」與將圖像存儲爲BLOB數據一樣嗎? – witherwind

+0

這絕對不一樣。 –

相關問題