我看了一些帖子在这方面,但我还是不明白什么是在我的情况下,最好的解决办法。
我开始写一个新的Web应用程序和后端将可提供约1-10万张图片 。 (用于单个图像平均尺寸200-500kB)
我的网站将同时提供内容和图片100-1000用户 。
我想也保持提供成本尽可能低(但这是次要的要求)。 我在想,如果相对于DB大小的成本文件系统空间更便宜。
我个人比较喜欢有我在数据库中,但任何建议将非常感激所有图像的想法:)
你认为在我的情况下,DB的做法是正确的选择?
我看了一些帖子在这方面,但我还是不明白什么是在我的情况下,最好的解决办法。
我开始写一个新的Web应用程序和后端将可提供约1-10万张图片 。 (用于单个图像平均尺寸200-500kB)
我的网站将同时提供内容和图片100-1000用户 。
我想也保持提供成本尽可能低(但这是次要的要求)。 我在想,如果相对于DB大小的成本文件系统空间更便宜。
我个人比较喜欢有我在数据库中,但任何建议将非常感激所有图像的想法:)
你认为在我的情况下,DB的做法是正确的选择?
把数据库中所有这些图像将使它非常,非常大的。 这意味着你的数据库引擎将忙于缓存所有这些图像(任务它不是真正的设计)时,它可以被缓存热点应用数据,而不是。
保留文件缓存到OS和/或反向代理 - 他们将它更好。
其他一些原因来存储文件系统上的图像:
大多数大型网站使用的文件系统。
见将图片存储为文件或数据库网络应用?
当二进制对象处理,按照架构文档为中心的方法,而不是像存储PDF文件和图像数据库中的文档,你最终将有当你开始看到各种性能问题与数据库重构出来。 只是存储在文件系统上的文件和你的DATABSE的表内的路径。 也有上您将使用序列化,并将其保存在数据库中的数据类型的大小的物理限制。 只要将其存储在文件系统和访问它。
你的第一句话说,你读过一些关于这个问题的帖子,所以我不会打扰投入链接到覆盖此文章。 根据我的经验,以及基于什么你就张贴图片和图像的尺寸的数量,你会如果你把它们存储在DB付出高昂的代价在DB的性能。 我把它们存储在文件系统上。
您正在使用什么数据库? MS SQL Server 2008提供了FILESTREAM存储
允许存储和使用SQL Server 2008的组合和NTFS文件系统BLOB数据的高效访问。 它涵盖了BLOB的存储选择,配置Windows和SQL Server使用FILESTREAM数据,注意事项FILESTREAM与其他功能相结合,与实施细节,如分区和性能。
细节
我们使用的FileNet,成像优化的服务器。 这个很贵。 一个便宜的解决方案是使用文件服务器。
请不要考虑存储在数据库服务器上的大文件。
正如其他人所说,引用存储在数据库中的大型文件。