什么时候应该将图像存储在数据库中

时间:2010-11-18 10:11:45

标签: sql sql-server-2008

我有一个productList表,其中我有4列,现在我必须存储每行的图像,所以我有两个选项...

  • 将图像存储在数据库中。
  • 将图像保存在文件夹中,仅存储路径上的路径。

所以我的问题是在这种情况下哪一个更好?为什么?

2 个答案:

答案 0 :(得分:3)

微软研究院发表了一篇关于这一主题的大量论文,名为To Blob Or Not To Blob

他们的简介是:

应用程序设计人员经常面临是将大对象存储在文件系统还是数据库中的问题。通常,这个决定是为了简化应用程序设计。有时,也会使用性能测量。本文着眼于碎片问题 - 一个可能影响系统长期部署的性能和/或可管理性的操作问题。正如通常所预期的那样,小于256K的对象最好存储在数据库中,而大于1M的对象最好存储在文件系统中。在256K和1M之间,读取:写入比率和对象覆盖或替换率是重要因素。我们使用“存储年龄”或对象覆盖次数的概念作为对挂钟时间进行标准化的方式。存储时间允许我们的结果或类似的结果应用于多个读取:写入比率和对象替换率。

答案 1 :(得分:0)

取决于 - 如果您知道它们的大小不会经常增加,您可以将图像存储在数据库中。在部署系统或迁移到新服务器时,这有其优势。你不必担心单独复制图像。

如果没有。在该系统上,行频繁地增加,并且图像变得越来越大,然后它很好地存储在文件系统上并且具有存储在数据库中的路径以供以后检索。这也会让您在迁移服务器时保持警觉,您必须分别从文件路径中复制图像。