Mongo 主键和非主键索引,性能差距为啥这么大?

2017-11-10 15:08:16 +08:00
 hheedat

我往测试数据库里塞了 500 万 条数据

{_id:1,field:1}
{_id:2,field:2}
...
...
...
{_id:5000000,field:5000000}

field 上建立有索引

然后按照主键和 field 查询, 相当于

db.data4.find({_id:{$gte:4000000}}).limit(1)

和

db.data4.find({field:{$gte:4000000}}).limit(1)

可以看出,时间差距巨大,这是为啥?

10683 次点击
所在节点    MongoDB
23 条回复
a342191555
2017-11-11 09:39:44 +08:00
@nekuata 你的 field 也不是一个地理坐标呀。另外,dn.data4.getIndexes()返回什么?
a342191555
2017-11-11 09:41:00 +08:00
@nekuata sry,把你当成 lz 了。在描述中我也没有看到 field 是 2d idx 呀
nekuata
2017-11-11 11:11:07 +08:00
@a342191555 呃,不好意思看错了,索引图上面应该是按钮...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/405302

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX