我有数百万个音频文件,这些文件是根据 GUId ( http://en.wikipedia.org/wiki/Globally_Unique_Identifier ) 生成的。我如何将这些文件存储在文件系统中,以便我可以在同一文件系统中有效地添加更多文件,并且可以有效地搜索特定文件强>。此外,它在未来应该是可扩展的。
文件根据 GUId(唯一文件名)命名。
例如:
[1] 63f4c070-0ab2-102d-adcb-0015f22e2e5c
[2] ba7cd610-f268-102c-b5ac-0013d4a7a2d6
[3] d03cf036-0ab2-102d-adcb-0015f22e2e5c
[4] d3655a36-0ab3-102d-adcb-0015f22e2e5c
发表你的看法。
PS:我已经通过了< Storing a large number of images >。我需要特定的数据结构/算法/逻辑,以便将来也可以扩展。
EDIT1:文件数量约为 1-2 百万,文件系统为 ext3 (CentOS)。
谢谢,
纳文
最佳答案
这非常简单 - 基于 GUID 值部分构建文件夹树。
例如,创建 256 个文件夹,每个文件夹都以第一个字节命名,并且只存储具有以该字节开头的 GUID 的文件。如果一个文件夹中的文件仍然太多 - 在每个文件夹中为 GUID 的第二个字节执行相同的操作。如果需要,添加更多级别。搜索文件会非常快。
通过选择每个级别使用的字节数,您可以有效地为您的方案选择树结构。
关于c - 在文件系统中存储大量文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1576272/