BLOB与FileSystem

Chr*_*ris 5 mysql filesystems blob

虽然这个问题已经出现在过去的上一篇文章中,但不同的场景和不同的考虑决定哪一个是最好的.

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

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

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

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

谢谢.

此致,德斯蒙德

Clé*_*des 12

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

BLOB 存储是最佳解决方案

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

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

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

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

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

  • 对于将使用图像的应用程序,需要流式传输性能,例如实时视频播放。
  • 对于 Microsoft PhotoDraw® 或 Adob​​e PhotoShop 等仅知道如何访问文件的应用程序。
  • 如果您想使用 NTFS 文件系统中的某些特定功能,例如远程存储。


nut*_*nut 7

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

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

编辑:这是MS SQL,所以MAYBE与Mysql相同:)