MongoDB - 我应该索引什么

时间:2014-12-09 15:03:58

标签: mongodb database-design mongoose

我的数据库中有一个存储应用程序的Collection:

{
  _id: <ObjectId>, //MongoDB's default id
  public_key: "abcde12345", //10 character string
  private_key: "abcdefg1234567", //14 character string
  name: "Cool App",
  desc: "This is a cool app",
  calls: 145
}

我需要使用public_keyprivate_key搜索应用程序,并且不想在我的架构中“盲目地”添加索引而不真正了解它们是否应该被编入索引。< / p>

有人可以建议哪些字段应该有索引吗?

1 个答案:

答案 0 :(得分:0)

您索引的哪些部分完全取决于哪个查询查询最重要。这些通常是那些最常执行的。

当您的应用经常搜索public_keyprivate_key时,这些是适合编制索引的候选对象。当您始终搜索确切的值时,应将它们定义为散列索引。在大型集合中,它们比排序索引快得多,但除了按精确值搜索外,不允许任何其他内容。