MongoDB的地理空间索引:有多快?

4
我在一个40K的文档集合上执行了一个 where in box 查询。查询需要大约0.3秒,获取文档需要大约0.6秒(结果集中有大约10K个文档)。
这些文档都相当小(每个文档只有约100字节),而我只返回经纬度信息。
看起来速度非常慢。这是正常现象还是我做错了什么?

嗨,Pawel!你尝试过在查询上使用.explain()了吗?(http://www.mongodb.org/display/DOCS/Optimization#Optimization-Explain) - walla
我有。{u'allPlans': [{u'cursor': u'GeoBrowse-box', u'indexBounds': {}}], u'cursor': u'GeoBrowse-box', u'indexBounds': {}, u'millis': 278, u'n': 10479, u'nscanned': 10479, u'nscannedObjects': 10479, u'oldPlan': {u'cursor': u'GeoBrowse-box', u'indexBounds': {}}} - Pawel Decowski
谢谢!集合的统计信息:{ "ns" : "test.latlon", "count" : 39324, "size" : 6662728, "avgObjSize" : 169.4315939375445, "storageSize" : 14327040, "numExtents" : 6, "nindexes" : 2, "lastExtentSize" : 10747904, "paddingFactor" : 1, "flags" : 0, "totalIndexSize" : 5136384, "indexSizes" : { "id" : 2244608, "location__date_1_stat_map_id_1" : 2891776 }, "ok" : 1 } - Pawel Decowski
1
刚刚进行了一项测试,使用常规索引和查询:x < lat < y 和 x1 < lon < x2。令人惊讶的是,它比使用地理空间索引快3倍。那么它有什么用呢? - Pawel Decowski
我也遇到了同样的问题。我的查询涉及到10k个文档的集合,使用“地理空间索引”需要超过0.1秒的时间。 "Explain" 显示:"ncanned 3100, n: 46"。 - Tallmad
显示剩余2条评论
1个回答

1

看起来确实非常慢。例如,在 PostgreSQL 上进行的大致相等的搜索几乎无法测量(即可能比 1 毫秒更快)。

我不太了解 MongoDB,但您确定地理空间索引是否已经打开吗?(我之所以问是因为在关系型数据库中,很容易定义带有几何/地理列的表,但没有适当地定义实际的索引,从而获得与您描述的大致相同的性能)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接