mongodb索引查询

时间:2012-05-29 14:09:36

标签: mongodb

如果我有一个基于字段_id和CreationTimestamp.O查询的集合,如下所示:

var _query = Query.And(
 Query.EQ("_id", "TheId"),
    Query.GT("CreationTimestamp.0", DateTimeOffset.UtcNow.AddMinutes(-15).UtcTicks));

我应该在这两个字段上创建复合索引吗? 我知道_id默认有一个索引。

我正在寻找有关最佳做法的指导,即为两个字段创建复合索引,或者只为CreationTimestamp.O创建一个索引,因为它们已经是_id的索引

1 个答案:

答案 0 :(得分:3)

这里创建复合索引并没有多大好处。由于_id字段上自动处理索引的选择性为1(它是唯一索引),因此没有理由将任何复合索引作为前缀。唯一可能的好处可能是MongoDB可以使用covered index进行此查询,并可能加快速度(您需要对数据进行基准测试以证明这一点)。