Mongodb指数或不指数

时间:2017-06-21 10:38:16

标签: mongodb indexing

关于是否索引的快速提问。频繁查询集合,在doc的数组中查找特定的“user_id”。见下文 -

_id:"bQddff44SF9SC99xRu",
participants: 
[
    {
        type:"client",
        user_id:"mi7x5Yphuiiyevf5",
        screen_name:"Bob",
        active:false
    },
    {
        type:"agent",
        user_id:"rgcy6hXT6hJSr8czX",
        screen_name:"Harry",
        active:false
    }
]

}

为'participant.user_id'添加索引是否是一个好主意?该数组经常被添加,偶尔会删除项目。

更新 我在使用相同的数据集进行本地测试后添加了索引,这肯定会降低mongo进程的高CPU使用率。由于这些文件只有少量更新,我认为这是正确的举措。我现在正在寻找更多可能的索引和优化。

1 个答案:

答案 0 :(得分:0)

为什么要索引?查询时是否存在严重的延迟问题?或者您是在尝试提前优化?

最终这里有很多变数让人很难回答。包括但不限于:

  • 查询的频率
  • 集合中有多少文档
  • 每个文档中有多少用户
  • 插入文档后,您在文档中添加/删除用户的频率。
  • 您是否需要优化对集合的插入/更新

索引可能不是答案,而是你如何构建数据。