MongoDB - 最适合复合指数?

时间:2012-09-17 15:08:45

标签: mongodb

我正在为MongoDB数据库添加索引,并希望确保我以最佳方式完成所有工作。我有很多查询,我将根据_id字段选择文档,但是还需要通过查询用户ID来验证该文档是否属于当前用户。

例如:

'_id'=>"123", "user_id"=>10

我不确定我应该把索引放在哪里。哪个是索引的最佳解决方案..

  • 就在_id
  • _id和user_id的复合索引
  • 其他东西

我真的应该将customer_id作为查询字段传递,还是应该从MongoDB返回客户ID并使用PHP代码进行检查?也就是说,如果它只是查找_id而不是_id和customer_id,查询会执行得更快。通过if语句检查PHP中的客户ID是否可以在PHP中比通过MongoDB中的查询更快地处理..

任何想法都将不胜感激!

1 个答案:

答案 0 :(得分:2)

如果您的查询中有_id,则默认的_id索引就足够了(您无需创建它)。这是一个独特的查找。你不需要过滤那些!如果您要过滤其他字段,则查询不应该运行得更慢。