【发布时间】:2013-10-31 09:36:12
【问题描述】:
我的数据库中有 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 使用率造成的情况。
【问题讨论】:
标签: mongodb mongo-shell