我的数据库中有100万个地理数据,其中20%是[0,0]
我运行简单查询db.test.find({lc:{$near:[0,0]}})
,这非常慢。它的成本约为20~30秒,因为数据将按近操作进行排序。 CPU使用率肯定会上升到100%。
我听说mongodb已经支持多核,但是当地理查询运行时,我启动了另一个mongo shell并输入了一个非常简单的查询db.test1.find().limit(1)
(请注意我甚至使用了不同的集合),它已经停止了。结果出现在我的地理查询完成之后。
我很困惑,似乎mongodb只支持单核用于长时间运行的读操作。真的吗?我正在使用mongo 2.4.5
编辑:即使我使用不同的数据库,它仍然会卡住。
编辑:我使用iostat -xm 2,当长查询运行时,所有磁盘I / O停止,%util几乎为0.内存使用率约为12%。因此,我非常确定高CPU使用率导致的情况。