获取当前表中有哪些索引
db.user.getIndexes()
- 创建索引
//第一种方式db.user.ensureIndex({"name",1}) //其中1表示按升序 -1降序//第二种方式 该方式指示在后台运行创建索引(后台线程)db.user.ensureIndex({"username":1},{"background":true})
ensureIndex方法中的参数
参数 | 描述 |
---|---|
background | 指示是否为后台运行 bool值 |
unique | 指示是否是唯一索引 |
name | 索引的名称 |
dropDups | 在创建唯一索引时是否删除重复数据 默认为false |
联合索引
//创建一个 name 升序 和price 降序 联合索引db.user.ensureIndex({"name":1,"price":-1});
删除索引 db.user.dropIndex({"userid":1})
- explain 会返回查询使用的索引情况,耗时和扫描文档数的统计信息。
用法:
db.user.find().explain()
4. explain executionStats 查询具体的执行时间
用法:
db.user.find({name:"zhangshan"}).explain("executionStats")
explain.executionStats.executionTimeMillis表示查询的时间