查询顺序会影响复合索引的使用吗?



MongoDB复合索引支持对索引字段的任何前缀的查询,但是查询中的字段顺序必须与复合索引本身的顺序匹配吗?

假设我们有以下索引:

{ "item": 1, "location": 1, "stock": 1 }

是否包含这个查询:

{"location" : "Antarctica", "item" : "Hamster Wheel"}

是。创建索引时字段的顺序很重要。

在上面的示例中,过滤"item"的所有查询都可以使用索引,但是不使用"item"字段并使用"location"和/或"stock"作为过滤条件的查询将不使用该索引。

"read"查询中过滤器中字段的顺序无关紧要。MongoDB足够聪明,知道

{"location" : "Antarctica", "item" : "Hamster Wheel"}

相同
{"item" : "Hamster Wheel", "location" : "Antarctica"}

正如其他人指出的那样,确保查询使用索引的最佳方法是在查询上运行一个解释http://bit.ly/1oE6zo1

相关内容

  • 没有找到相关文章

最新更新