我正在创建像youtube这样的应用程序来存储视频,我需要一些建议。
我应该使用SQL Server FileStream来存储视频文件,还是应该将它们存储在硬盘上的某处并将路径记录为SQL Server中的varchar(MAX)?
推荐哪个以及为什么?
除了这些之外,你还推荐别的吗?请随时告诉我,但请告诉我为什么。
非常感谢你。
答案 0 :(得分:9)
FILESREAM类型的优点是提供透明事务,同时仍然在文件系统上存储大文件。缺点是它是专有的,如果你决定更改数据库,这个解决方案可能不太容易移植到其他数据库。因此,恕我直言,这个问题的客观答案是不可能的。
答案 1 :(得分:8)
我会将它们存储在外面,只是因为没有立即和迫切需要将它们存储在里面。此外,视频 big ,您可能需要通过其他一些编码等步骤来运行它们,这些步骤可能与SQL Server相似,也可能不同。使用基本文件还可以让您有机会在任意数量的文件服务器上传播负载,而不是单个SQL Server。
重新开始;不存储完整路径 - 仅存储您在应用中配置的相对于外部根的路径。这样,您可以重新定位所有文件,只需更改单个网站设置,而不必执行大型UPDATE
。例如,在数据库中我可能会存储foo/bar/20110404_27.mpg
,然后将其与我的网站设置\\myfileserver\share
(使用Path.Combine
)结合使用。
答案 2 :(得分:-3)
我认为更好的方法是将图像存储在FileSystem中并将图像和其他信息保存在数据库中。这些链接提供了更多信息