目前,我们正在使用本地 SQL Server 2016 作为数据库服务器,并计划将其移至 Amazon RDS。问题是,目前有一个文件流文件组正在使用中,用于存储一些偶尔出现的二进制 blob,例如一些小图像、一些 json 和 xml 文件、一些 MS Office 文档等... 使用非常偶然,文件大小从几百 KB 到几 MB 不等。
由于 RDS SQL Server 尚不支持 FILESTREAM,因此必须将其移出。
那么,理想的推荐方法是什么?1. Amazon DynamoDB - 通过创建包装器对象来包含文档。但 400KB 属性限制是一个问题。2. 使用 Amazon S3 作为文档存储,并将 S3 url 放在 SQL Server 中而不是二进制 blob 中。3. 继续使用 SQL Server,但将 FILESTREAM 移动到不同的行数据文件组,这样它就不会干扰主行数据。
考虑到编程难度,选项 3 是最简单的,因为完全不需要编码,并且更改仅限于一些模式更改;而选项 2 是最困难的(因为它需要引入适当的编程模式)。
考虑到编程难度、性能、可扩展性/可用性和使用情况,这里的最佳实践是什么?