2015-05-13 138 views
0

早上好,在Web應用程序中檢索異構文件, 我設計使用如Spring MVC,休眠,MySQL和AngularJS技術的Web應用程序。 現在我發現自己解決了以下問題。假設產品與一個或多個異構文件(圖像,PDF,視頻等)相關聯,並且您必須同時管理文件的上傳和顯示。 我查看了數據庫中BLOB的使用與文件系統和數據庫的混合使用之間的區別。 我的問題是:什麼是最好的方法來使用,考慮到所使用的技術堆棧,並保留(至少在初始階段)部署到單個服務器?BLOB或文件系統來存儲和

感謝

回答

0

在我看來,最好的方法是將文件存儲在文件系統,然後它們的路徑存儲在數據庫中的VARCHAR它的工作很適合我

+0

感謝您的回答,過去我在使用PHP和MySQL是網站使用這種方法,但我不得不完整性問題,因爲它是從數據庫中刪除一條記錄,而不是從文件系統,反之亦然。 – Matteo

0

斑點只在少數角落使用是有用的案例。大多數情況下,您都希望將文件存儲到文件系統中,這並不令人意外,完全是爲了這個目的:-)

+0

感謝您的回答,但是使用blob在數據庫和備份的性能方面沒有問題? – Matteo

+0

這就是我的意思。除非你確定這個blob對你來說是正確的,否則你應該避免它。 – jpkrohling

+0

好的,我明白了。謝謝:) – Matteo

0

幾年前,我們經歷了一個非常類似的過程,並選擇將文件存儲在數據庫中。這適用於少量文件。但考慮一年/ 5年/ 10年的情況以及您將擁有多少文件。它們佔用了數據庫中的大量空間,這會影響性能和備份/恢復時間。 我們現在正試圖將其移出數據庫,並在文件系統和它比把它們放在文件系統一起啓動(因爲它現在是在我們的應用中根深蒂固的)很多困難。

+0

感謝您的答覆。 所以,你告訴我,從長遠來看,數據量適中Blob開始產生問題,因此最好存儲在文件系統上嗎? – Matteo

+0

沒錯。除非你完全確信只有少量圖像,否則我會先把它們放在文件系統上,然後開發這個工作,因爲這樣可以節省大量的時間和精力以及後來的問題。 – IGGt

+0

好的,非常感謝:) – Matteo

0

這取決於數據庫和/或文件大小上。

也許有一點題外話,但也很想知道,我自己的應用程序中,我發現,MySQL是不適合用於存儲文件的數據庫內大於1 MB。但是,當使用包含GridFS的數據庫(基本上是數據庫中的文件系統抽象)時,存儲文件很有用。更具體地說,MongoDB將這些文件分塊存儲。在檢索文件(如視頻)時,您只能請求所需的數據塊而不是整個視頻,例如,如果您稍後跳到視頻中,這非常有用。

既然你正在使用MySQL(和它看起來像每個文件的大小將是大於1 MB),我建議把他們的文件系統中。

相關問題