2011-06-06 90 views
0

將RDBMS中的整個文件存儲在文件系統中的文件中並引用RDBMS中的文件路徑有什麼好處嗎?RDBMS vs文件系統用於文件存儲

哪種方法應該更快?我什麼時候選擇一個呢?使用哪種文件系統有什麼關係? (說ext3)

我不指望文件根本改變。這些文件可能是json或xml,也可能是pdf(不太可能)。另外,可能不需要經常引用這些文件。它們僅用於存檔。

謝謝。

+0

感謝您的回覆。我深信雙方的論點。看起來這將是一個權衡決定。 – 2011-06-07 16:47:18

回答

2

鑑於預計文件不會改變,保留DBMS中的文件的價值有限。將文件保存在DBMS中的主要優點是數據庫管理系統知道如何管理事務,但如果文件不會改變,那麼這種優勢就變得微不足道了。

在DBMS中存儲文件的另一個優點是數據庫備份將包含文件;在單獨存儲文件的情況下,您必須備份單獨的文件夾以及DBMS本身以保證所有數據的安全。

在DBMS中存儲文件的另一個優點是數據庫可以對訪問文件實施更細微的控制。

將文件存儲在文件系統中的主要優點是可以很容易地查看您擁有的文件。

的第二個好處是,你可以備份或操作文件的DBMS之外 - 儘管這也是從一些觀點是不利的。

如果文件存儲在DBMS中的斑點中,則普通的SQL客戶端軟件可以通過普通的SQL連接檢索內容。如果SQL客戶端軟件與DBMS和文件不在同一臺計算機上,那麼您不必擔心客戶端如何獲取文件數據。

將文件從數據庫管理系統中分離出來的另一個優點是文件可以存儲在DBMS機器之外。另一方面,這使得將文件加載到「DBMS」中變得複雜。


總體而言,考慮到上述問題,在'DBMS'文件中使用'似乎有一些優勢。另一方面,很多人的確使用'文件系統'方式,而且他們還活着。這可能是因爲他們的SQL客戶端與DBMS位於同一臺機器上,所以文件傳輸問題並非無法克服,但這是我最擔心的一點。

1

如果文件大小小於1MB,您可以將它們存儲在RDBMS中,但也可以考慮將它們存儲在文件系統中。請參閱http://technet.microsoft.com/en-us/library/bb933993.aspx

將RDBMS中的整個文件存儲在文件系統中的文件與RDBMS中文件路徑的引用有什麼優勢嗎?

如果錢等是沒有問題的,那麼在RDBMS存儲是有利的,因爲你會得到一個RDBMS的所有益處,加上沒有從非關聯存儲在數據庫中引用的文件的開銷。

哪種方法應是更快?

RDBMS

什麼時候我選擇了另一種?

受實際條件所決定的。考慮文件系統,如果文件大於1MB。許多共享託管提供程序不啓用FILESTREAM。

會有問題的文件系統是在使用?

我不知道這件事。

1

要添加到什麼喬納森·萊弗勒寫道:與BLOB的處理大小固定的對象打交道時,當

DBMS的效率不高,因此,我們可以說,DBMS不「像」大對象。另外,許多DBMS將表外的BLOB存儲在獨立的存儲中。

如果您的目標是歸檔目的,分開存儲文件以便於備份和檢索是有意義的。您也可以將文件移動到某些後端存儲並使其「脫機」以釋放服務器上的空間(如果需要)。