是或否?

所以我使用的应用程序将图像大量存储在数据库中。 你对此有何看法? 我更喜欢在文件系统中存储位置,而不是将其直接存储在数据库中。

你认为什么是利弊?


我负责管理许多TB图像的一些应用程序。 我们发现在数据库中存储文件路径是最好的。

有几个问题:

  • 数据库存储通常比文件系统存储更昂贵
  • 您可以使用标准的现成产品来超级加速文件系统访问
  • 例如,许多Web服务器使用操作系统的sendfile()系统调用将文件直接从文件系统异步发送到网络接口。 存储在数据库中的图像不受益于此优化。
  • 诸如网络服务器之类的东西,不需要特殊的编码或处理来访问文件系统中的图像
  • 数据库胜出,图像和元数据之间的事务完整性非常重要。
  • 管理数据库元数据和文件系统数据之间的完整性会更加复杂
  • (在Web应用程序的上下文中)难以保证数据已被刷新到文件系统上的磁盘上

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

  • 您正在存储正在动态变化的图像,说发票,并且您想在2007年1月1日收到发票?
  • 政府希望你保持6年的历史
  • 存储在数据库中的图像不需要不同的备份策略。 存储在文件系统上的图像可以
  • 如果它们位于数据库中,则更容易控制对图像的访问。 空闲管理员可以访问磁盘上的任何文件夹。 它需要一个确定的管理员去窥探数据库以提取图像
  • 另一方面也有问题

  • 需要额外的代码来提取和流式传输图像
  • 延迟可能比直接文件访问慢
  • 数据库服务器负载较重

  • 文件存储。 Facebook的工程师对此进行了很好的讨论。 一个拿走就是知道目录中文件的实际限制。

    在干草堆针:数十亿照片的有效存储

    链接地址: http://www.djcxy.com/p/67499.html

    上一篇: Yea or Nay?

    下一篇: ipython pylab figures not inline