MongoDB 语法语句 【大数据查询优化:索引篇】
1、设置索引后可以让查询变得更快,但是更新及增加操作会变得稍微慢一些。
2、explain("executionStats") 查询具体的执行耗时;
例句:db.user.find().explain("executionStats") 或者 db.user.find({name:"张三"}).explain("executionStats") ;
耗时是 expain.executionStats.executionTimeMillis 值;
3、设置索引:createIndex() 方法 ,【 值为 1 指定按升序创建索引,-1 按降序来创建索引。】
db.user.createIndex({name:1}) 【此所以的删除语句 db.user.dropIndex({name:1}) 】
或者 db.user.createIndex({name:1,age:-1}) 【此所以的删除语句 db.user.dropIndex({name:1,age:-1}) 】
【复合索引: 如果想用到复合索引,查询条件必须包含前面符合索引中的前N个索引列;如果查询条件的索引列与创建的不一致,MongoDB会帮助调整顺序。】
【查询条件为 db.user.find({name:"张三"}) 符合以上复合索引】
【查询条件为 db.user.find({name:"张三",age:15}) 符合以上复合索引】
【查询条件为 db.user.find({age:15,name:"张三"}) 符合以上复合索引】
【查询条件为 db.user.find({age:15}) 不符合 以上复合索引】
或者 db.user.createIndex({name:1,age:0},{background:true}) 【建索引过程会阻塞其它数据库操作,background可指定以后台方式创建索引,即增加 "background" 可选参数。 "background" 默认值为false。】
4、查看当前 user 集合存在的所有索引:
db.user.getIndexes()
5、删除索引:
db.user.dropIndex({name:1})
6、给创建的索引命名:
db.user.createIndex({name:1,age:-1}) 这里没有给索引命名,会自动命名为: name_1_age_-1
db.user.dropIndex({name:1,age:-1},{name:"jtname"}) ,那么这个索引名称为 : jtname
7、创建唯一索引:
db.user.createIndex({name:1},{unique:true})
创建某字段为唯一索引后,此字段的值将不能重复,否则报错。比如插入相同的数据等。

浙公网安备 33010602011771号