结合排序的MongoDB复合索引策略

时间:2019-01-19 08:37:48

标签: mongodb

我正在搜索的记录很多,例如:

{
  name: "test",
  price: 1000,
  createdAt: ISODate("2019-01-19T00:00:00")
}

我正在对此数据进行find()操作,这些数据在name中进行搜索,然后按createdAt进行排序。我还可以使用$gte$lte过滤价格范围,并按createdAt进行排序。排序总是降序。

现在,MongoDB性能顾问告诉我,我需要创建以下复合索引:{ name: 1, createdAt: -1 },因为否则它必须检查每条记录。

但这不是意味着我也必须为price / createdAt组合创建一个索引吗?还有其他所有物业/排序订单组合吗?

我有大约20个可以搜索或过滤的属性以及8种不同的排序方法。我确定不能期望为所有这些组合添加索引吗? 我应该只留下这些没有索引,而忽略性能顾问吗?

0 个答案:

没有答案