MongoDB权威指南学习笔记5---索引相关的知识点

1 查看查询计划

db.user.find({"username":"xxx"}) .explain()

db.doc.find({"es_y":"2014"}).explain()
{
 "cursor" : "BasicCursor",
 "isMultiKey" : false,
 "n" : 0,
 "nscannedObjects" : 1,
 "nscanned" : 1,
 "nscannedObjectsAllPlans" : 1,
 "nscannedAllPlans" : 1,
 "scanAndOrder" : false,
 "indexOnly" : false,
 "nYields" : 0,
 "nChunkSkips" : 0,
 "millis" : 0,
 "server" : "idc254:27017",
 "filterSet" : false
}

--------

indexOnly---表明是否只用索引就可以返回所需的字段,而不是二次根据地址取文档!

cursor表明是否用了索引

nscanned是mongodb完成这个查询扫描的文档总数。

millis显示的是这个查询耗费的毫秒数。

n显示了查询结果的数量。

scanAndOrder---表明是否需要在内存中排序!

2 建立索引

db.user.ensureIndex({"username":1})

3 查询某个集合的所有索引

db.doc.getIndexes()

4 查看当前服务器的操作

db.currentOp()

{
 "inprog" : [
  {
   "opid" : 486,
   "active" : true,
   "secs_running" : 2,
   "op" : "getmore",
   "ns" : "local.oplog.rs",
   "query" : {
    
   },
   "client" : "192.168.56.66:37299",
   "desc" : "conn2",
   "threadId" : "0x7f1e191d7700",
   "connectionId" : 2,
   "waitingForLock" : false,
   "numYields" : 0,
   "lockStats" : {
    "timeLockedMicros" : {
     "r" : NumberLong(89),
     "w" : NumberLong(0)
    },
    "timeAcquiringMicros" : {
     "r" : NumberLong(15),
     "w" : NumberLong(0)
    }
   }
  }
 ]
}

 5 关于索引

对于写操作时间慢,一个集合最多64个索引,通常不要超过2个以上的索引个数!

6 创建复合索引

db.user.ensureIndex({"key1":1,"key2":1})

7 内存排序

如果需要在内存中排序,且超过32MB.

就会报错!

8 强制指定索引进行查询

.hint({索引。。。})

9覆盖索引

简单来说,就是索引的字段已经可以满足需求,不需要再二次根据地址取文档!

10隐式索引

比如说 {"age":1,"username":1}可以当做{"age":1}来使用!

MongoDB权威指南学习笔记5---索引相关的知识点

时间: 2024-12-26 15:39:24

MongoDB权威指南学习笔记5---索引相关的知识点的相关文章

MongoDB权威指南学习笔记4---查询相关的知识点

1 find find({查询条件},{"key":1,"email":1})  后面表示返回哪些键 2 可用的比较操作符 $lt , $lte,$gt,$gte 比如db.users.find({"age":{"$gte":18,"$lte":30}}) 3不等于 find(...{"key":{"$ne":"value"}} 4 in find

mongoDB权威指南学习笔记

//mongoDB第1-3章节添加,修改,修改器的笔记: //备注:和MySQL查询一样,时刻想着优化查询数据的时间和性能 //db.help() //数据库帮助信息 //db.blog.help() //集合帮助信息 //db.c.find().help() //返回find()方法的子方法信息 //清空集合数据 //db.blog.remove() //插入信息 //db.blog.insert({'title' : 'bbbbb', 'content' : 'bfbfbf', 'hits'

Git权威指南学习笔记(二)Git暂存区

如下图所示: 左侧为工作区,是我们的工作目录. 右侧为版本库,其中: index标记的是暂存区(stage),所处目录为.git/index,记录了文件的状态和变更信息. master标记的是master分支所代表的目录树.HEAD指向master分支. objects标记的是Git的对象库,所处目录为.git/objects,文件索引建立了文件和对象库中对象实体之间的映射关系. 通过该图我们可以清晰地看出add,commit等命令的转化关系.下面通过git diff和git status两条命

JavaScript权威指南学习笔记之一

1.关于分号 javascript里面不强制使用分号来表示一行语句的结束,但是最好能够在写js之前,特别是在原有的js上面新增时,最好前置一个分号.避免这种情况发生:  2.JavaScript类型转换 3.关于=== ①如果类型不同则不等 ②null===null或undefined===undefined ③true===true或false===false ④NaN不等 ⑤0===0 0===-0 ⑥如果是同一个object,array,function则相等 4.关于== ①如果已经==

Git权威指南学习笔记(一)Git初始化

1.在Git中配置用户名和邮件地址 $ git config --global user.name "Jymn_Chen" $ git config --global user.email "[email protected]" 注意把用户名和邮件地址替换成你自己的资料. 在这里的参数global表示配置的作用范围是当前用户,如果将参数改为system,那么配置的作用范围是系统中的所有用户. 2.创建版本库 新建一个目录并cd到目录中,执行以下命令: $ git i

Hadoop权威指南学习笔记一

Hadoop权威指南学习笔记一 声明:本文是本人基于Hadoop权威指南学习的一些个人理解和笔记,仅供学习参考,有什么不到之处还望指出,一起学习一起进步. 转载请注明:http://blog.csdn.net/my_acm 1. 数据的增长远远超过了磁盘的读取速度,传统的数据存储方式和分析方式变得不再适用于大数据的处理. Hadoop分为两大核心技术,HDFS(HadoopDistributed File System-分布式hadoop文件处理系统)和MapReduce(分为Map-数据映射等

sencha touch权威指南---学习笔记5-经纬度获取计算直线距离

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head>    <meta charset="utf-8" />    <title></title>    <link rel="stylesheet" href="sdk-touch/resources/css/sencha-touch.

CSS权威指南学习笔记系列(1)CSS和文档

题外话:HTML是一种结构化语言,而CSS是它的补充:这是一种样式语言.CSS是前端三板斧之一,因此学习CSS很重要.而我还是菜鸟,所以需要加强学习CSS.这个是我学习CSS权威指南的笔记,如有不对,请谅解和指出.谢谢大家.正文: 第一章 CSS和文档---------- 1.CSS,称为层叠样式表.使用CSS的理由有:a.易于使用,样式表能大大减少Web创作人员的工作量:b.在多个页面上使用样式,可以创建一个样式表,然后把这个样式表应用到多个页面:c.层叠,CSS还规定了冲突规则:这些规则统称

Hadoop权威指南学习笔记二

MapReduce简单介绍 声明:本文是本人基于Hadoop权威指南学习的一些个人理解和笔记,仅供学习參考,有什么不到之处还望指出,一起学习一起进步. 转载请注明:http://blog.csdn.net/my_acm 上一篇介绍了什么是Hadoop.Hadoop的作用等.本篇相同基于Hadoop权威指南,结合迪伦的Hadoop的视频教程对MapReduce做一个介绍. 1. MapReduce是Hadoop的核心之中的一个.MapReduce分为两个部分,Mapper和Ruducer模块.简单