存储图像:DB或文件系统 - (Storing Images : DB or File System

2019-06-18 01:53发布

我看了一些帖子在这方面,但我还是不明白什么是在我的情况下,最好的解决办法。

我开始写一个新的Web应用程序和后端将可提供约1-10万张图片 。 (用于单个图像平均尺寸200-500kB)

我的网站将同时提供内容和图片100-1000用户

我想也保持提供成本尽可能低(但这是次要的要求)。 我在想,如果相对于DB大小的成本文件系统空间更便宜。

我个人比较喜欢有我在数据库中,但任何建议将非常感激所有图像的想法:)

你认为在我的情况下,DB的做法是正确的选择?

Answer 1:

把数据库中所有这些图像将使它非常,非常大的。 这意味着你的数据库引擎将忙于缓存所有这些图像(任务它不是真正的设计)时,它可以被缓存热点应用数据,而不是。

保留文件缓存到OS和/或反向代理 - 他们将它更好。



Answer 2:

其他一些原因来存储文件系统上的图像:

  • 当数据库忙或缩小图像的服务器,甚至可以运行。
  • 文件系统来存储文件制成,是在它非常有效。
  • 在你的数据库转储数据意味着较慢的备份和其他操作。
  • 没有服务器端的编码就可以提供图像,只是普通的旧IIS / Apache的需要。
  • 你可以用非常便宜的网络服务器更快的扩大,或潜在的CDN。
  • 您可以在不涉及数据库中执行相关工作(生成缩略图等)。
  • 你的数据库服务器能保持更多的“真实”的表中的数据在内存中,这就是你得到的查询数据库的速度。 如果使用其宝贵的内存,以保持图像文件缓存,不买你几乎没有什么速度明智与内存有更多的照片索引。


Answer 3:

大多数大型网站使用的文件系统。

见将图片存储为文件或数据库网络应用?



Answer 4:

当二进制对象处理,按照架构文档为中心的方法,而不是像存储PDF文件和图像数据库中的文档,你最终将有当你开始看到各种性能问题与数据库重构出来。 只是存储在文件系统上的文件和你的DATABSE的表内的路径。 也有上您将使用序列化,并将其保存在数据库中的数据类型的大小的物理限制。 只要将其存储在文件系统和访问它。



Answer 5:

你的第一句话说,你读过一些关于这个问题的帖子,所以我不会打扰投入链接到覆盖此文章。 根据我的经验,以及基于什么你就张贴图片和图像的尺寸的数量,你会如果你把它们存储在DB付出高昂的代价在DB的性能。 我把它们存储在文件系统上。



Answer 6:

您正在使用什么数据库? MS SQL Server 2008提供了FILESTREAM存储

允许存储和使用SQL Server 2008的组合和NTFS文件系统BLOB数据的高效访问。 它涵盖了BLOB的存储选择,配置Windows和SQL Server使用FILESTREAM数据,注意事项FILESTREAM与其他功能相结合,与实施细节,如分区和性能。

细节



Answer 7:

我们使用的FileNet,成像优化的服务器。 这个很贵。 一个便宜的解决方案是使用文件服务器。

请不要考虑存储在数据库服务器上的大文件。

正如其他人所说,引用存储在数据库中的大型文件。



文章来源: Storing Images : DB or File System -