将图片存储为文件或存储在网络应用程序的数据库中?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (75)

我的问题相当普遍,我知道可能没有100%的答案。我正在构建一个ASP .NET Web解决方案,其中将包含大量图片并希望获得相当数量的流量。我确实想要取得成绩。

我应该将图片保存在数据库还是文件系统上?无论答案如何,我更关心为什么要选择特定的方式。

在DB中存储图像 - 是或否?,如何将图像存储在文件系统中,存储少量图像:blob或fs?并可能还有其他一些。

评论:感谢您的许多很好的答案。即使我喜欢拥有100%数据库驱动解决方案的想法,我也会选择基于文件的解决方案。看来,今天有很好的解决方案来做我想要的数据库等,但我有一些不这样做的原因。

  • 我将采用托管解决方案,我拥有大量的存储空间(10GB),但数据库只有300MB。在数据库中额外存储会花费很多。
  • 我不是数据库专家,也不是数据库设置的控制人员。基于数据库的解决方案可能需要自定义配置。

如果我们将移动到我们自己的服务器上运行该网站,我可能会考虑基于数据库的解决方案。谢谢,斯蒂芬

提问于
用户回答回答于

将图片存储在数据库中的文件系统和图片位置上。

为什么?因为...

  1. 将能够将图片作为静态文件提供。
  2. 不需要数据库访问或应用程序代码来获取图片。
  3. 可以从不同的服务器提供图像以提高性能。
  4. 它会减少数据库瓶颈。
  5. 数据库最终将其数据存储在文件系统上。
  6. 存储在文件系统上时,图像可以轻松缓存。
用户回答回答于

在我最近开发的项目中,我将图像(以及各种二进制文档)作为图像列存储在数据库表中。

将文件存储在数据库中的好处显然在于,如果记录被删除,则不会在硬盘上引用未引用的文件,因为数据库(=元数据)和硬盘(=文件存储)之间的同步不是内置的并且必须手动编程。

使用今天的技术,我建议你在SQL Server 2008 FILESTREAM列中存储图像(至少这就是我将要处理的下一个项目),因为它们结合了将数据存储在数据库中的优点,以及在单独文件中具有大型二进制文件至少根据广告;))

扫码关注云+社区

领取腾讯云代金券