【发布时间】:2011-04-22 19:42:53
【问题描述】:
我正在对大约 40K 文档的集合进行 where in box 查询。查询耗时约 0.3 秒,获取文档耗时约 0.6 秒(结果集中有约 10K 文档)。
文档相当小(每个约 100 字节),我将结果限制为仅返回纬度/经度。
似乎非常很慢。这是对的还是我做错了什么?
【问题讨论】:
-
嗨,帕维尔!您是否在查询中尝试过 .explain() (mongodb.org/display/DOCS/Optimization#Optimization-Explain)?
-
我有。 {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' : {}}} 不知道是什么意思。
-
so ...您的光标类型 - 是 GeoBrowse-box - 因为您使用 $box 查询。使用索引扫描集合,因为 nscanned 是 10K 而不是 40K。你能显示集合 .stats() 吗?
-
谢谢!集合的统计信息:{“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},“好的”:1 }
-
刚刚使用常规索引和查询进行了测试:x
标签: mongodb performance indexing geospatial