当前位置:  开发笔记 > 数据库 > 正文

将文件存储在数据库中而不是文件系统中?

如何解决《将文件存储在数据库中而不是文件系统中?》经验,为你挑选了4个好方法。

通常,性能损失有多糟糕的是将文件存储在数据库(特别是mssql)而不是文件系统中?我无法想出在应用程序可移植性之外的一个原因,我想将我的文件存储为SQL Server中的varbinaries.



1> Michael Stum..:

看看这个答案:

在DB中存储图像 - 是还是不?

从本质上讲,空间和性能可能会非常大,具体取决于用户数量.此外,请记住,Web服务器很便宜,您可以轻松添加更多以平衡负载,而数据库通常是最昂贵且最难扩展的Web体系结构的一部分.

有一些相反的例子(例如,Microsoft Sharepoint),但通常,将文件存储在数据库中并不是一个好主意.

除非您可能编写桌面应用程序和/或大致知道您将拥有多少用户,但对于像公共网站那样随机且无法预料的内容,您可能需要为在数据库中存储文件付出高昂代价.



2> Jon Galloway..:

如果您可以迁移到SQL Server 2008,您可以利用FILESTREAM支持,它可以为您提供最好的 - 文件存储在文件系统中,但数据库集成比仅在varchar字段中存储文件路径要好得多.您的查询可以返回标准的.NET文件流,这使得集成更加简单.

FILESTREAM存储入门


可扩展性和可用性似乎已经深思熟虑 - 请参阅此白皮书:http://msdn.microsoft.com/en-us/library/cc949109.aspx
有一点需要注意的是,在连接数据库时必须使用集成安全性(即Windows身份验证):http://blogs.msdn.com/b/psssql/archive/2008/04/10/how-it-works -file流,需要集成的安全窗口,authentication.aspx

3> Lance Fisher..:

我会说,这取决于你的情况.例如,我在当地政府工作,我们有很多图像像面部照片等.我们没有大量的用户,但我们需要有良好的安全性和审计数据.数据库对我们来说是一个更好的解决方案,因为它使这更容易,我们不会遇到扩展问题.



4> Will Dean..:

这是什么问题?

现代DBMS SQL2008有多种处理BLOB的方法,这些方法不仅仅是在表格中.当然,有利有弊,您可能需要更深入地考虑它.

这是一篇有趣的论文,由已故的(?)Jim Gray撰写

BLOB或不BLOB:数据库或文件系统中的大对象存储

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有