索引是对数据库表中一列或多列的值进行排序的一种结构,可以让我们查询数据库变得更快。 MongoDB
的索引几乎与传统的关系型数据库一模一样,这其中也包括一些基本的查询优化技巧。
创建索引
$ db.collection.ensureIndex({'name':1})
获取当前集合的索引
$ db.collection.getIndexes()
删除索引
$ db.collection.dropIndex({'name':1})
复合索引
1
表示升序,-1
表示降序
$ db.collection.ensureIndex({'username':1,'age':-1})
基于username
的查询会被命中,但是只是基于age
的查询不会被命中。也就是说要满足使用后面的索引,必须让前面的索引均先**“点亮”**
使用explain
帮助你获得查询方面诸多有用的信息。只要对游标调用该方法,就可以得到查询细节。 explain
会返回一个文档,而不是游标本身
$ db.collection.find({name:"自动增加4"}).explain() #可以获取查询信息
$ db.collection.find({name:"自动增加4"}).explain('executionStats') # 对象中的executionTimeMillis是查询耗时