在DB中存储图像是好还是不好?

时间:2009-08-11 06:29:07

标签: iphone

我该怎么办?我有超过1600张图片。我应该将它们直接存储在应用程序中还是存储在数据库中。现在我正在存储在应用程序中,我的应用程序被挂起所以请帮助


完全重复: User Images: Database or filesystem storage?
完全重复: Storing images in database: Yea or nay?
完全重复: Should I store my images in the database or folders?
完全重复: Would you store binary data in database or folders?
完全重复: Store pictures as files or or the database for a web app?
完全重复: Storing a small number of images: blob or fs?
完全重复: [在图像系统或数据库中存储图像?] [7]

2 个答案:

答案 0 :(得分:1)

与大多数问题一样,它并不像听起来那么简单。在某些情况下,将图像存储在数据库中是有意义的。

  • 您正在存储的图像 动态变化,比如说发票 你想得到一张发票 它是在2007年1月1日?
  • 政府要你维持 6年历史图像存储在 数据库不需要 不同的备份策略。图片 存储在文件系统上
  • 更容易控制访问权限 图像,如果它们在数据库中。 空闲管理员可以访问任何文件夹 磁盘。这需要一个真正的决心 管理员在数据库中窥探 提取图像

另一方面,存在相关问题

  • 需要提取其他代码 并流式传输图像
  • 延迟可能比直接慢 文件访问
  • Web服务器上的负载较重

此答案引自“Conrad

答案 1 :(得分:0)

如前所述,这取决于。

最常见的做法之一是根据图像的大小来决定。 对于非常小的图像,例如缩略图,图标等,您当然可以将它们存储在数据库中,并且可以将它们存储为实体的字段(比如联系人)。

对于中等大小的图像,将它们存储在数据库中仍然有意义。但是,您必须自己决定什么是中等大小的图像(我的阈值是1 MByte),并且您应该将图像存储为不是实体的字段:您应该创建图像实体以及与感兴趣的实体的关系(说联系方式。)

最后,非常大的图像不应存储在数据库中。您将它们存储在磁盘上并在数据库中存储它们的路径名。由于硬盘与DB的延迟和访问时间不同,这是必要的。实际上,通过索引快速访问数据库可以让您在数据库中存储中小尺寸图像,但是应该以不同方式处理大图像。