【问题标题】:MongoDB's geospatial index: how fast is it?MongoDB地理空间索引:它有多快?
【发布时间】: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


【解决方案1】:

确实看起来很慢。例如,我在 PostgreSQL 上进行的大致相同的搜索几乎太快而无法测量(即可能快于 1 毫秒)。

我对 MongoDB 了解不多,但是你确定地理空间索引真的开启了吗? (我问是因为在 RDBMS 中很容易定义一个带有几何/地理列的表,但没有适当地定义实际的索引,所以你得到的性能与你描述的大致相同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-12
    • 2013-02-04
    • 2017-01-25
    • 2011-10-23
    • 2014-01-04
    • 2019-11-30
    • 1970-01-01
    • 2011-11-12
    相关资源
    最近更新 更多