MongoDB中的索引

  • 一. 索引介绍
  • 二. 索引的操作
  • 1. 创建索引
  • 2.创建索引指定索引名称
  • 3.查看索引是否创建成功
  • 4.删除索引的命令
  • 5.创建复合索引
  • 6.创建唯一索引
  • 7.重建索引


一. 索引介绍

  • 索引就是为了加速查询的,MongoDB的索引几乎与传统的关系型数据库一模一样,这其中也包括一些基本的优化技巧。下面是创建索引的命令:

二. 索引的操作

1. 创建索引

db.集合名称.ensureIndex({“name”:1})

  • 1 代表索引升序存储
  • -1 代表索引降序存储
  • _id 默认自动创建索引

mongodb创建索引 background mongodb怎么创建索引_mongodb

2.创建索引指定索引名称

db.集合名称.ensureIndex({“name”:1},{name:“name_index”})

mongodb创建索引 background mongodb怎么创建索引_索引_02

3.查看索引是否创建成功

db.集合名称.getIndexes()

mongodb创建索引 background mongodb怎么创建索引_索引_03

4.删除索引的命令

db.集合名称.dropIndex({“name”:1});

mongodb创建索引 background mongodb怎么创建索引_关系型数据库_04

5.创建复合索引

db.集合名称.ensureIndex({“name”:1, “age”:-1,bir:1})

  • 该索引被创建后,基于name和age的查询将会用到该索引
  • 或者是基于name的查询也会用到该索引
  • 但是只是基于age的查询将不会用到该复合索引。
  • 如果想用到复合索引,必须在查询条件中包含复合索引中的前N个索引列。然而如果查询条件中的键值顺序和复合索引中的创建顺序不一致的话,MongoDB可以智能的帮助我们调整该顺序,以便使复合索引可以为查询所用。
  • 如:db.t_user.find({“age”: 30, “name”: “stephen”})
  • 对于上面示例中的查询条件,MongoDB在检索之前将会动态的调整查询条件文档的顺序,以使该查询可以用到刚刚创建的复合索引。

mongodb创建索引 background mongodb怎么创建索引_mongodb_05

6.创建唯一索引

db.t_user.ensureIndex({“name”:1},{“unique”:true})

  • 在缺省情况下创建的索引均不是唯一索引。
  • 一旦创建唯一索引, 如果再次插入name重复的文档时,MongoDB将报错,以提示插入重复键

7.重建索引

db.集合名称.reIndex();