我们正在为我们的应用程序使用 Mongodb 我有一个关于在集合上创建索引的查询。
首先下面是我的查询,它将在数据库上进行查找并返回数据
db.mycollection.find({ symbol: "UGHNG", date: "2013-11-08", mainsymbol: "HIJ" }).sort( { "price": 1,"surv": 1} ).pretty()
从上面的查询中可以看出,有两个字段 price 和 surv 仅用于排序目的。
为上述创建索引的最佳方法是什么
创建一个复合索引,其中包含上述查询的每个字段。
db.mycollection.ensureIndex({"symbol":1,"date":1,"mainsymbol":1,"price":1,"surv":1},{"unique" : false})
或者
如下所示创建 2 个单索引和 1 个复合索引来服务于上述查询
db.mycollection.ensureIndex({"price" : 1}, {"unique" : false})
db.mycollection.ensureIndex({"surv" : 1}, {"unique" : true})
db.mycollection.ensureIndex({"symbol":1,"date":1,"mainsymbol":1},{"unique" : false})
请分享您的观点,因为在所有方面(RAM 大小,查询性能)处理此问题的最佳方法是什么