我想说,这取决于您的情况。例如,我在当地政府工作,我们有很多像面部照片之类的图像。我们的用户数量并不多,但我们需要对数据进行良好的安全和审计。数据库对我们来说是一个更好的解决方案,因为它使这变得更容易,而且我们不会遇到扩展问题。
一般来说,与文件系统相比,将文件存储在数据库(特别是 mssql)中对性能的影响有多大?除了应用程序可移植性之外,我想不出其他原因,我希望将我的文件作为 varbinaries 存储在 SQL Server 中。
虽然性能是一个问题,但我认为现代数据库设计已经大大减少了小文件的问题。
除了性能之外,它还取决于数据的紧密耦合程度。如果文件包含与数据库字段密切相关的数据,那么它在概念上属于接近它并且可能存储在 blob 中。如果它包含可能与多个记录相关或可能在数据库上下文之外有一些用途的信息,则它属于外部。例如,网页上的图像是根据链接到它的页面的单独请求获取的,因此它可能属于外部(取决于特定的设计和安全考虑)。
我们的妥协(我不保证它是最好的)是将较小的 XML 文件存储在数据库中,但将图像和其他文件存储在数据库之外。