我正在处理一些文本文件,以搜索模式和计数。由于文件非常大,处理时间是一个重要的问题。我有一个python代码,可以更新计数器并将其存储在mongodb中。为了使它工作得更快,我正在努力减少db操作的数量
原始版本每一次出现都在递增:
mlcol.find_one_and_update(
{"connip": conip},
{"$inc":{ts:1}},
upsert=True
)
由于这需要很长时间,我所做的是将计数器保存在内存中,在字典中,并定期检查这些数据以存储它们:
for conip in conCounter.keys():
d = conCounter[conip]
for ts in d.keys():
mlcol.find_one_and_update(
{"connip": conip},
{"$inc":{ts:d[ts]}},
upsert=True
)
这样的过程要快得多,但是我发现单独更新每个计数器仍然需要很长时间
有没有办法在一个命令中启动多个更新
有没有其他的办法让事情进展得更快
正如Alex Blex所解释的,创建索引和批量执行解决了这个问题:
相关问题 更多 >
编程相关推荐