mongodb需要处理海量数据,只有一个服务器实例

2024-05-17 07:00:22 发布

您现在位置:Python中文网/ 问答频道 /正文

正在处理大约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似乎没有达到最大值。)

如有任何建议,我将不胜感激。在

谢谢!!在


Tags: keyfalsedbmongo记录find速度小时
1条回答
网友
1楼 · 发布于 2024-05-17 07:00:22

添加索引

从查询的解释结果来看,“key”上没有索引,需要添加一个。在

> db.prescriptions.addIndex({'key': 1});

如果mongo报告任何警告,你需要采取行动

相关问题 更多 >