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})

  创建某字段为唯一索引后,此字段的值将不能重复,否则报错。比如插入相同的数据等。

 

posted @ 2020-11-28 15:16  半遮  阅读(337)  评论(0)    收藏  举报