文本文件应该存储在我的SQL Server数据库中吗?

时间:2012-01-10 17:55:09

标签: sql sql-server wcf sql-server-2008

我们使用多个文本文件作为模板来创建WCF数据服务 - 服务操作调用的结果。

每个文本文件都少于3000个Bites Max。

使用WCF数据服务文件将模板文件存储在文件系统上与将其存储在SQL Server 2008 R2服务器中的优缺点是什么?

3 个答案:

答案 0 :(得分:1)

在SQL Server 2008之前,我建议强烈反对在文件夹中存储文本文件等大对象。它往往会减慢访问速度,并使它们更难以使用。相反,我通常建议存储相关文件的链接。

当然,这意味着如果有人删除了他们不应该删除的内容,并且需要将文件备份并与数据库分开传输,则数据库将无法保护文件。

使用SQL Server 2008,我认为使用文件流功能已经克服了许多以前的问题,我认为使用文件流存储文件有时非常有用。它继续将实际数据存储在数据库之外,这避免了许多以前的复杂情况。但它仍然将两者绑定在一起,并允许数据库保护文件,而不是仅仅依赖数据库中的链接是正确的。

答案 1 :(得分:1)

任何一种存储方法都有很多优点和缺点。如今(我的观点发生了变化,有些日子可能会再次改变),我会关注安全性和可管理性。

  • 如果是敏感数据,则可以通过将它们存储在数据库中来获得更高的安全性。如果不出意外,攻击数据库可能比文件系统更难。如果安全性不那么重要,可以更容易/更简单地将其存储在操作系统上。
  • 为了管理,如果数据得到更新(以及这种情况发生的频率),更新有多容易?数据库中的一个实例更新(或损坏...)比Web服务器场中的每个服务器上的实例更简单。 (1台服务器,没问题,20台服务器,可能很头疼。)

答案 2 :(得分:0)

我认为最好将数据直接存储在数据库中。这使得访问速度更快,因为数据库在读取和处理数据方面更有效。你总是可以将电影存储在数据库中 - 这没问题。然后它也可以流式传输大数据。

出于安全原因,存在更多作为配置数据库的足够选项。如果您对数据库进行集群 - 这可以更具可扩展性。