0

我在数据库中存储了许多小图像,并想使用 SQL Server 的文件流功能。但微软建议将它用于大于 1MB 的对象,但我的平均对象大小是 300KB。所以我想知道,Filestream 会起作用吗?如果有,有什么缺点?我使用 SQL Server Express 2008 R2,我希望这个功能可以帮助我节省数据库大小,否则它会增长到 express 版本限制大小。谢谢

4

1 回答 1

1

微软在他们的文档中处理了这个问题:

何时使用 FILESTREAM

在 SQL Server 中,BLOB 可以是将数据存储在表中的标准 varbinary(max) 数据,也可以是将数据存储在文件系统中的 FILESTREAM varbinary(max) 对象。数据的大小和用途决定了您应该使用数据库存储还是文件系统存储。如果满足以下条件,则应考虑使用 FILESTREAM:

  • 正在存储的对象平均大于 1 MB。
  • 快速读取访问很重要。
  • 您正在开发将中间层用于应用程序逻辑的应用程序。

对于较小的对象,将 varbinary(max) BLOB 存储在数据库中 通常可以提供更好的流式传输性能。

所以它应该可以工作(假设 Express 支持它)——你可能只是对较小对象的数据库内方法的性能有所损害。

于 2011-08-02T16:22:44.910 回答