0

我的数据库中有 100 万个地理数据,其中 20% 是 [0,0]

我运行简单的查询db.test.find({lc:{$near:[0,0]}}),这非常慢。大约需要 20~30 秒,因为数据将使用 $near 操作进行排序。CPU 使用率肯定会上升到 100%。

听说 mongodb 已经支持多核了,但是当 geo-query 运行时,我启动了另一个 mongo shell 并输入了一个非常简单的查询db.test1.find().limit(1)(注意我什至使用了不同的集合),它卡住了。结果只有在我的地理查询完成后才出来。

我很困惑,似乎 mongodb 只支持单核进行长时间运行的读取操作。真的吗?我正在使用 mongo 2.4.5


编辑:即使我使用不同的数据库,它仍然会卡住。

编辑:我使用 iostat -xm 2,当长查询运行时,所有磁盘 I/O 停止,%util 几乎为 0。内存使用率约为 12%。所以我很确定高CPU使用率引起的情况。

4

1 回答 1

0

它现在被确认为一个错误。 https://jira.mongodb.org/browse/SERVER-11516

于 2013-12-03T07:15:15.497 回答