【发布时间】:2018-11-29 23:07:59
【问题描述】:
我对 Mongo 有一个特殊的问题。
我们有一个包含 800k 文档的集合,其结构如下。
{
"_id" : ObjectId("5bd844199114bab3b2c19fab"),
"u" : 0,
"c" : 0,
"iden" : "343754856",
"name" : "alan",
"email" : "mkasd@abc.com",
"mobile" : "987654321093456",
"expires" : ISODate("2018-11-29T11:44:25.453Z"),
"created" : ISODate("2018-10-30T11:44:25.453Z")
}
我们已经索引了我们通常查询的iden 和name。
我们尝试了两种类型的查询。
-
db.Collection.find({"iden": "343754856", "name": "alan", "created":
{"$gt": ....}).count()其中“created”是一个未索引的字段。
-
db.Collection.find({"iden": "343754856", "name": "alan"})
并遍历所有记录以根据
created进行过滤。
但是,MongoDB 似乎在执行第二个查询时花费了大量时间,而它应该是对 1 的优化。
关于这里出了什么问题的任何线索? 我们正在使用 Go 库。
【问题讨论】:
-
explain()说什么? -
印度以外的人可能会对什么是“十万份文件”感到非常困惑,所以请不要在这里使用印度测量值。
标签: mongodb performance go