SQL Server 2008 FileStream与普通文件

我正在创建像youtube这样的应用来存储video,我需要一些建议。

我应该使用SQL Server FileStream来存储video文件,还是应该将它们存储在硬盘上的某个位置并将路径记录为SQL Server中的varchar(MAX)?

推荐哪个,为什么?

除了这两个之外,你还推荐别的吗? 请随时告诉我,但请告诉我为什么。

非常感谢。

FILESREAM类型的优点是提供透明事务,同时仍然在文件系统上存储大文件。 缺点是它是专有的,如果您决定更改数据库,此解决方案可能不太容易移植到其他数据库。 所以提供客观答案这个问题是不可能的恕我直言。

我会把它们存放在外面,因为没有立即和迫切的需要将它们存储在里面 。 此外,video很大 ,您可能需要通过其他一些编码等步骤来运行它们,这些步骤可能与SQL Server相似,也可能不同。 使用基本文件还可以让您有机会在任意数量的文件服务器上传播负载,而不是单个SQL Server。

重新走的路; 不存储完整路径 – 仅存储相对于您在应用中配置的外部根的某些路径。 这样,您可以重新定位所有文件,只需更改单个站点设置,而不必进行大的UPDATE 。 例如,在DB中我可能存储foo/bar/20110404_27.mpg ,然后将其与我的站点设置\\myfileserver\share (使用Path.Combine )组合。

我认为更好的方式是将图像存储在FileSystem中并将图像和其他信息保存在数据库中。 这些链接提供了更多信息

  1. 将文件存储在数据库中而不是文件系统中?
  2. http://www.extremeexperts.com/sql/FAQ/StoreImages.aspx
  3. http://www.databasejournal.com/features/mssql/article.php/3719221/Storing-Images-and-BLOB-files-in-SQL-Server.htm
  4. http://forums.asp.net/p/1620545/4189703.aspx/1?Re+Is+File+System+better+than+Sql+Server+for+video+storage+