有效搜索包含大约1 000 000条记录的文件?

时间:2014-03-07 08:38:50

标签: python search indexing

我很好奇,如何搜索包含约的文件(txt)。一百万条记录。 (我使用Python) 你的第一步是什么?要将每条记录加载到数组还是其他结构?我认为根据记忆,这太无效了(但我不是专家)。或者我应该对此文件进行某种索引?你有什么看法?

1 个答案:

答案 0 :(得分:1)

我的建议是将数据加载到数据库(例如mysql),索引相应的列,然后使用它来搜索数据。

虽然你可以在Python中将它全部加载到内存中,但这绝不是搜索数据的最佳方式。使用索引会带来很多繁重的工作,并且应该提供相当快的搜索时间(只要你有可靠的可索引列)

如果您只是根据单个列中的整个值查找记录(即没有通配符搜索或匹配),那么您只需使用Python将值加载到内存中即可。我使用这种方法将超过3000万条交易记录加载到内存中,并根据交易ID进行搜索。这对我来说是一个更好的解决方案,因为这一大量数据只在一个很少运行的任务中使用过一次,我只需要引用一列的整个值。

以下是我如何实现这一目标的简单示例。

transactions = {}
with open("transactions") as f:
    for line in f:
        try:
            lineSplit=line.split(",")
            transactions[lineSplit[0]] = lineSplit[1]
        except:
            pass
if "transid" in transactions:
    print transactions["transid"]