2010-11-18 138 views
0

我有productList的的表,其中我有4列,现在我具有存储图像的每一行,所以我有两个选项这个..在数据的基础上我们应该何时将图像存储在数据库中?

  • 存储图像。
  • 将图像保存到一个文件夹中,并将唯一路径存储在表格上。

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

+1

这个问题被问了很多很多次:http://stackoverflow.com/q/1234202/79444; http://stackoverflow.com/q/1071636/79444; http://stackoverflow.com/q/815626/79444; http://stackoverflow.com/q/815626/79444;等等......甚至在那些问题中,他们提到这些问题也是重复的...... – veljkoz 2010-11-18 10:33:23

+0

和...其中一些重复的部分再次被标记为重复...深层链。 – 2010-11-18 10:50:19

回答

3

微软研究院就这个问题发表了相当广泛的论文,名为To Blob Or Not To Blob

他们的简介是:

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

+2

+1 - 我一直在找那张纸,记不起名字。 – Oded 2010-11-18 10:19:02

0

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

如果没有。的行在该系统上非常频繁地增加,并且图像变得更大,然后将其存储在文件系统上并且具有存储在数据库中的路径供以后检索。这也会让你在迁移你的服务器的时候需要注意从文件路径单独拷贝图像。

相关问题