我很好奇,如何在(txt)包含大约的文件中搜索。一百万条记录。(我使用Python)你的第一步是什么?将每条记录加载到数组或其他结构中?根据记忆,我认为这太无效了(但我不是专家)。还是我应该对这个文件建立某种索引?你的意见呢?
发布于 2014-03-07 08:41:00
我的建议是将数据加载到数据库中(如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"]https://stackoverflow.com/questions/22245232
复制相似问题