正在处理大约1亿个ODM记录。基本上,每个键(处方号)响应大约1300条记录(不是唯一的)。这些键已被编入索引。
现在,我正在使用pymongo查询特定的key,以返回这些结果集,以便可以用python处理它们。在
查询mongo是最大的瓶颈。每次查询大约需要20秒。按目前的速度,查询每条记录需要400小时。在
这就是我“解释”我的疑问时的样子:
db.prescriptions.find({'key':68565299}).explain()
{
"cursor" : "BasicCursor",
"nscanned" : 103578563,
"nscannedObjects" : 103578563,
"n" : 1603,
"millis" : 287665,
"nYields" : 0,
"nChunkSkips" : 0,
"isMultiKey" : false,
"indexOnly" : false,
"indexBounds" : {
}
}
这表明我已经准备好了索引
^{pr2}$我是不是因为尝试在一个服务器实例上运行这个数据处理而发疯了? (有趣的是,当我运行top时,我的CPU和RAM似乎没有达到最大值。)
如有任何建议,我将不胜感激。在
谢谢!!在
添加索引
从查询的解释结果来看,“key”上没有索引,需要添加一个。在
如果mongo报告任何警告,你需要采取行动
相关问题 更多 >
编程相关推荐