2011-04-05 88 views
4

我正在創建一個像YouTube一樣的應用程序來存儲視頻,我需要一些建議。SQL Server 2008 FileStream vs普通文件

我應該使用SQL Server FileStream來存儲視頻文件,還是應該將它們存儲在硬盤上的某個位置並將該路徑記錄爲SQL Server中的varchar(MAX)?

哪個建議,爲什麼?

除了這兩者之外,還有其他建議嗎?請隨時告訴我,但請告訴我爲什麼。

非常感謝。

回答

9

FILESREAM類型具有提供透明事務的優點,同時仍然在文件系統上存儲大文件。缺點是它是專有的,如果您決定更改數據庫,該解決方案可能不易移植到其他數據庫。因此,爲這個問題提供客觀答案是不可能的,恕我直言。

-3
8

我會存儲這些之外,僅僅是因爲沒有立即和迫切需要存儲他們裏面。另外,視頻是big,您可能需要通過其他編碼等步驟來運行它們,這些步驟可能會或可能不會喜歡SQL Server。使用基本文件還可讓您有機會在任意數量的文件服務器上傳播該負載,而不是單個SQL Server。

重新找回路徑;不要存儲完整路徑路徑 - 僅存儲相對於您在應用中配置的外部根目錄的路徑。這樣,您可以重新定位所有文件,只需更改一個站點設置,而不必執行大的UPDATE。例如,在數據庫中,我可能會存儲foo/bar/20110404_27.mpg,然後再將其與我的站點設置\\myfileserver\share(使用Path.Combine)結合使用。