【问题标题】:How can we create an Index on MongoDB?我们如何在 MongoDB 上创建索引?
【发布时间】:2018-10-22 09:22:51
【问题描述】:

我想为性能方面的 Mongo 数据库创建一个索引,请问您能帮我怎么做吗?

您的帮助将不胜感激。

【问题讨论】:

    标签: mongodb indexing mongodb-query


    【解决方案1】:

    基本语法是:

    db.collection.createIndex(keys, options)

    所以,例如:

    $ db.users.createIndex({"username" : 1})

    详情请参阅MongoDB Indexes

    【讨论】:

      【解决方案2】:

      如果您想在users 集合上的字段email 上建立索引:

      db.users.createIndex({"email":1}, {background:true})
      

      在 mongodb 集合中应用索引之前,您需要了解索引的以下方面:

      索引策略:

      • 检查您的应用程序向 mongodb 发送什么类型的查询。
      • 列出所有此类可能的查询。
      • 根据操作次数,操作类型定义index type
      • 根据应用程序需要选择正确的索引类型。类型可以是单索引、复合索引、部分索引、TTL索引等
      • 您的查询是否涉及排序操作?关注此guide on indexing for operations with sort
      • 更详细的索引策略指南here

      测试您的索引:

      • 获得要应用的索引列表后,使用explain 测试索引性能。
      • 在您的数据库和enable profiler(在 dev 或 stag 中)生成示例应用程序调用,以检查您的索引的执行情况。

      如何编制索引:

      • Create indexes 在后台。它将确保创建索引操作不会阻塞其他操作。
      • 根据您的数据大小,如果要在大型集合上创建索引,请考虑在低流量时间进行。或在计划的维护时段内
      • 您可能需要在某些用例中考虑building rolling index,以尽量减少索引的影响。

      跟踪您创建的索引:

      • 记录您的索引。这可能包括您创建这些索引的时间、原因等。

      衡量您在生产中的索引使用情况:

      • 在生产中应用这些索引后,在一两周内检查索引的使用情况stas 以检查它们是否真的被使用了
      • 如果根本不使用索引,请考虑删除它们。

      注意:

      • 索引添加performance penalty 用于写入操作。设计和应用您的应用程序必须的索引。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-12-22
        • 1970-01-01
        • 1970-01-01
        • 2011-03-20
        • 2017-04-13
        • 1970-01-01
        • 2020-08-06
        • 2020-10-08
        相关资源
        最近更新 更多