2012-05-29 83 views
0

如果我有我的查询基于字段_id和CreationTimestamp.O如下集合:MongoDB的索引查询

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

我应该建立在这两个领域的一个复合索引? 我知道默认_id有一个索引。

我正在寻找指导的最佳实践,即两个字段创建一个复合索引或只是创建CreationTimestamp.O的指数已经是他们是_id

回答

3

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