Sql-Server

在數據庫中儲存大量文件集合

  • September 13, 2021

我正處於開發網站的規劃階段,公共使用者將能夠在其中儲存他們的文件,本質上它可以是文件、pdf、音頻、影片或圖像之類的任何東西。

我們預計數據庫中儲存的大量文件(例如數字)可能是數百萬個,平均文件大小為 10 Mbs 的一個文件。

我想知道我應該開始學習/思考的方向,例如在上述情況下,一個表應該包含多少個文件以及一個數據庫應該包含多少個這樣的表。

處理這種情況時的最佳做法是什麼。在從事此類項目時,我應該注意哪些主要事項,我可以使用 MS SQL Server 數據庫,My SQL 不是優先事項,除非它具有某些優勢(它全部基於可用資源)。

馬蒂戈是正確的。文件系統旨在最好地處理儲存文件,數據庫系統旨在最好地儲存原始數據,而不是文件。您應該為正確的工作使用正確的工具。

將文件直接儲存在數據庫中可能會遇到多個問題,例如膨脹的備份會浪費空間並且在需要時需要更長的時間才能恢復。此外,數據庫性能問題可能發生在查詢級別(因為您的行被拆分為多個頁面以支持文件等大對象),甚至由於數據庫數據文件的不斷增長而導致的爭用,甚至發生在數據庫級別。

通常不建議將文件直接儲存在數據庫中的原因還有很多。一個很好的替代建議是將文件直接儲存在某個文件系統的某個位置,並將指向其文件路徑的連結儲存在有關數據庫中文件的元數據表中。

最後,您可能會發現這篇 Brent Ozar 文章將文件儲存在文件系統中,而不是關係數據庫中。也提供有關此事的資訊。

引用自:https://dba.stackexchange.com/questions/298983