我正在研究一个需要存储大量文档(PDF,Word Files等)的系统文件,以便可以由用户打开/下载。

我在考虑几种可能性:

  • 文件系统 - 存储1M文档可能不是那么好主意
  • SQL数据库 - 但是我不需要大部分的关系功能,因为我只需要存储二进制文档及其ID,因此这可能不是最快的解决方案
  • 无SQL数据库 - 对它们没有任何调查,所以我不确定它们是否还不错,也有很多,所以我不知道要选择哪一个

我要寻找的存储应该是:

  • 快速地
  • 可畏惧
  • 开源(不是至关重要的,但很不错)

您能推荐您认为存储这些文件的最佳方法是什么?

有帮助吗?

解决方案

该文件系统(如名称所建议的)设计和优化,可高效且可扩展的方式存储大量文件。

其他提示

您可以关注Facebook,因为它存储了很多文件(150亿张照片):

  • 他们最初从商业存储设备提供的NFS共享开始。
  • 然后他们搬到了ONW实现HTTP文件服务器,称为Haystack

如果您想了解更多信息,这是Facebook注释 http://www.facebook.com/note.php?note_id=76191543919

关于NFS分享。请记住,出于性能原因,NFS共享通常将文件限制在一个文件夹中。 (如果您假设所有最近的文件系统都使用B树来存储其结构,则可能有点直观。)因此,如果您使用(NetApp)之类的商业NFS共享,则可能需要将文件保存在多个文件夹中。

如果您对文件有任何形式的ID,则可以执行此操作。只需将其分为ASCII表示,将其分为几个字符的组,然后为每个组制作文件夹即可。例如,我们将整数用于IDS,因此将具有ID 1234567891的文件存储为存储/0012/3456/7891。

希望有帮助。

在我看来...

我会将文件压缩到磁盘(文件系统)上,并使用数据库来跟踪它们。

如果这是唯一的工作,则可以使用sqlite。

文件系统:在考虑大图时,DBM再次使用文件系统。并且文件系统专用于保存文件,因此您可以看到优化(如卢克(Lukeh)提到)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top