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