我在数据库中存储了许多小图像,并希望使用SQL Server的文件流功能。但Microsoft建议将其用于大于1MB的对象,但我的平均对象大小为300KB。所以我想知道,Filestream会工作吗?如果是这样,有什么缺点? 我使用SQL Server Express 2008 R2,我希望此功能可以帮助我保存数据库大小,否则它会长大以表达版本有限的大小。 感谢
答案 0 :(得分:1)
Microsoft在their documentation中处理此问题:
何时使用FILESTREAM
在SQL Server中,BLOB可以是存储的标准varbinary(max)数据 表中的数据,或存储的FILESTREAM varbinary(max)对象 文件系统中的数据。数据的大小和使用决定了 是否应使用数据库存储或文件系统存储。如果 以下条件为真,您应该考虑使用FILESTREAM:
- 平均存储的对象大于1 MB。
- 快速读取访问非常重要。
- 您正在开发使用中间层的应用程序 应用逻辑。
对于较小的对象,在数据库中存储varbinary(max)BLOB 通常会提供更好的流媒体效果。
所以它应该可以工作(假设Express支持它) - 对于较小的对象,你可能只是在数据库内方法上的性能受损。