8

虽然这个问题在以前的帖子中已经出现过,但是不同的场景和不同的考虑决定了哪一个是最好的。

我需要实现一个系统,它可以每年处理 200GB - 400GB 大小的图像(每张图像大约 < 1mb)。它是 P&C 图像,只允许授权的个人访问和查看。我打算使用基于系统的应用程序来插入到 MYSQL 数据库,并仅使用基于 PHP Web 的应用程序进行 VIEW。

我正在考虑使用 FILESYSTEM,因为它很容易对图像进行备份和恢复,并且无需担心 MYSQL 数据库的大小。

我正在使用在 Windows Server 中运行的 MySQL + Apache + PHP。

非常感谢您的建议和意见。

谢谢你。

问候, 戴斯蒙德

4

2 回答 2

12

还值得一读: 构建应用程序时文件存储的最佳实践 - 数据库(Blob 存储)与文件系统

BLOB 存储是最佳解决方案

  • 为了更好的可扩展性。尽管文件系统旨在处理大量不同大小的对象,例如文件和文件夹,但实际上它们并未针对大量(数千万)小文件进行优化。数据库系统针对此类场景进行了优化。

  • 为了更好的可用性。数据库服务器具有超出文件系统提供的可用性功能。数据库复制是一组解决方案,允许您在分布式环境中复制、分发和潜在地修改数据,而日志传送提供了一种在主系统发生故障时保留数据库备用副本的方法。

  • 用于控制增长的中央数据存储库。DBA 有权控制和监控数据库的增长,并在需要时拆分数据库。

  • 用于全文索引和搜索操作。您可以索引和搜索存储在 BLOB 列中的某些类型的数据。当数据库设计者决定一个表将包含一个 BLOB 列并且该列将参与全文索引时,设计者必须在同一个表中创建一个单独的基于字符的数据列,该列将包含文件扩展名BLOB 字段中的文件。在全文索引操作期间,全文服务查看基于字符的列中列出的扩展名(.txt、.doc、.xls 等),应用相应的过滤器来解释二进制数据,并提取索引和查询所需的文本信息。

文件系统存储是最佳解决方案

  • 对于将使用图像的应用程序需要流媒体性能,例如实时视频播放。
  • 适用于 Microsoft PhotoDraw® 或 Adob​​e PhotoShop 等只知道如何访问文件的应用程序。
  • 如果您想使用 NTFS 文件系统中的某些特定功能,例如远程存储。
于 2015-02-22T13:25:22.290 回答
9

小于 256K 的对象最好存储在数据库中,而大于 1M 的对象最好存储在文件系统中。在 256K 和 1M 之间,读写比和对象覆盖或替换率是重要因素。

来源: http: //research.microsoft.com/apps/pubs/default.aspx?id=64525

编辑:它是 MS SQL,所以可能和 Mysql 一样 :)

于 2013-10-30T07:41:38.627 回答