我在数据库中存储了许多小图像,并想使用 SQL Server 的文件流功能。但微软建议将它用于大于 1MB 的对象,但我的平均对象大小是 300KB。所以我想知道,Filestream 会起作用吗?如果有,有什么缺点?我使用 SQL Server Express 2008 R2,我希望这个功能可以帮助我节省数据库大小,否则它会增长到 express 版本限制大小。谢谢
问问题
937 次
1 回答
1
微软在他们的文档中处理了这个问题:
何时使用 FILESTREAM
在 SQL Server 中,BLOB 可以是将数据存储在表中的标准 varbinary(max) 数据,也可以是将数据存储在文件系统中的 FILESTREAM varbinary(max) 对象。数据的大小和用途决定了您应该使用数据库存储还是文件系统存储。如果满足以下条件,则应考虑使用 FILESTREAM:
- 正在存储的对象平均大于 1 MB。
- 快速读取访问很重要。
- 您正在开发将中间层用于应用程序逻辑的应用程序。
对于较小的对象,将 varbinary(max) BLOB 存储在数据库中 通常可以提供更好的流式传输性能。
所以它应该可以工作(假设 Express 支持它)——你可能只是对较小对象的数据库内方法的性能有所损害。
于 2011-08-02T16:22:44.910 回答