假设我有 250,000 个字典条目,分为同样多的文件。每个文件都以包含词条的行开头。它们合计为 2 GB。排列信息的最佳方式是什么,以便我可以轻松快速地查找单词?我应该创建子目录 abc 等吗?我应该将多个文件合并成更大的文件吗?
答案1
你没有过多说明你想要做什么,或者数据是什么,但这是我的想法——假设所有单词都是唯一的。您并没有说您担心磁盘空间的有效利用。
Ext4 文件系统。将每个单词存储在一个大目录中的单独文件中。让文件系统为您找到它们 - 对您来说非常容易(只需按名称打开您想要的文件),并且文件系统有一种有效的方法来查找文件。
您需要确保您的文件系统有足够的可用 inode - 每个文件一个,因此您需要 250,000 个可用 inode:du -i
。
避免执行ls
必须枚举文件的操作或其他操作(例如在文件浏览器中打开文件),并且性能应该很好。
答案2
如果它是像 python 字典这样的字典,请将其转换为 JSON 并将其存储到 MongoDB 或某些 NoSQL 实现并从数据库访问它