我正在尝试在 mongodb 中处理大约一亿条记录。基本上,每个键(处方号)响应大约 1300 条记录(不是唯一的)。这些键已编入索引。
现在,我正在使用 pymongo 查询特定键以返回这些结果集,以便可以使用 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" : {
}
}
这表明我有索引
> db.prescriptions.getIndexes()
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"ns" : "processed_data.prescriptions",
"name" : "_id_"
}
]
我是否因为试图在一个服务器实例上运行此数据处理而失去兴趣?(有趣的是,当我运行 top 时,我的 CPU 和 RAM 似乎没有被最大化。)
我将不胜感激任何建议。
谢谢!!