我们如何在MongoDB上创建索引?

时间:2018-05-11 22:38:54

标签: mongodb indexing

我想在性能方面为Mongo数据库创建索引,所以你能帮我解决一下这个问题吗?

我们将在此感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

基本语法是:

db.collection.createIndex(keys, options)

所以,例如:

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

有关详细信息,请参阅enter image description here

答案 1 :(得分:1)

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

索引策略:

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

测试您的索引:

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

如何编制索引:

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

跟踪您创建的索引:

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

衡量生产中的索引使用统计信息:

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

<强>注意:

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