我正在按字段a
,b
和c
查询,并拥有以下索引:
{a: 1, b: 1, c: 1}
我在a
上添加了一个新查询,按d
desc排序。我应该将索引更改为:
{a: 1, b: 1, c: 1, d: -1}
或者我应该添加第二个索引:
{a: 1, d: -1}
答案 0 :(得分:1)
在这种情况下,更改索引不起作用(请参阅http://docs.mongodb.org/manual/tutorial/sort-results-with-indexes/#sort-and-non-prefix-subset-of-an-index)。
在查询非顺序复合索引字段的一般情况下,创建索引总是占用更多内存,它会表现更好:
"但是,索引在支持查询时效率不高,因为只有项目和股票的索引。" http://docs.mongodb.org/manual/core/index-compound/