20

我的一位客户要求为数千个不同格式的文档(即 pdf、doc、docx 等)提供文档管理系统。我的问题是将此文件存储在数据库或文件系统中的最佳方式是什么?在这两种方法之间如何轻松保护文件?

快速检索文件是关键要求。

如果有帮助,我正在使用 mysql

问候。

4

3 回答 3

19

您可能希望将其直接存储到文件系统中。

使用文件系统时要小心:

  • 机密性:将文档放在 Apache 文档根目录之外。然后您的 PHP 控制器将输出文档。
  • 分片路径:不要将数千个文档存储在同一个目录中,创建不同的目录。例如,您可以在文件名上使用哈希进行分片。如/documents/A/F/B/AFB43677267ABCEF5786692/myfile.pdf。
  • Inode number :如果您存储大量小文件(如果主要存储 PDF 和办公文档,则可能不是您的情况),您可能会用完 inode。

如果您需要搜索这些文档(日期/标题/等...),您可能希望将元数据存储到数据库中以获得更好的性能。

仅供参考,在这个问题中, MS SQL Server 具有FILESYSTEM列类型(如混合),但目前 MySQL没有替代品

于 2011-08-04T10:27:54.090 回答
6

对大数据块使用文件系统访问通常意味着比将它们存储在 mysql 数据库中更快的访问和更少的开销。

一篇有趣且可能相关的帖子:在 DB 中存储图像 - 是还是不是?

于 2011-08-04T09:32:57.807 回答
1

为了获得高性能,您应该使用文件系统,使用 php glob 函数和 JS 接口。我在三月份完成了这样的项目。

于 2011-08-04T09:34:09.560 回答