mongodb系列~ mongodb索引详解

1 简介:讲讲mongo的索引 

2   索引 介绍 

    1 分类

    单列索引  联合索引   哈希索引 地理索引 文本索引  多key索引  

    2 索引属性

       1 唯一性  2 TTL属性(删除数据用) 3 部分索引 4 稀疏索引  

    3 操作

       1 后台创建索引  2 批量添加索引 

     4 应用

        mongo索引 也遵化 最左原则


2 慢日志类型    query insert update delete

3 查看慢日志
  1 db.system.profile.find() 慢日志总揽
  2 db.system.profile.find().sort({$natural:-1}) 查看最新的慢日志
  3 db.system.profile.find( { op: { $ne : 'command' } }).pretty() 返回所有除去command的操作类型
  4 db.system.profile.find( { ns : mydb.test } ).pretty() 返回特定合集
  5 db.system.profile.find(
  {
  ts : {
  $gt : new ISODate("2015-10-18T03:00:00Z"),
  $lt : new ISODate("2015-10-19T03:40:00Z")
  }
  }
  ).pretty() 返回指定时间内的集合
4 planSummary 执行计划
  0 执行sql类型
    query insert delete update
  1 扫描类型
      COLLSCAN:全表扫描 (着重关注)
      SORT:表明在内存中进行了排序 (着重关注)
      COUNT_SCAN:count使用了Index进行count时的stage返回 (着重关注)
      SUBPLA:未使用到索引的$or查询的stage返回 (着重关注)
      IXSCAN:索引扫描 (推荐)
      FETCH:根据索引去检索指定document
      SHARD_MERGE:将各个分片返回数据进行merge
      LIMIT:使用limit限制返回数
      SKIP:使用skip进行跳
      IDHACK:针对_id进行查询
     SHARDING_FILTER:通过mongos对分片数据进行查询
     COUNT:利用db.coll.explain().count()之类进行count运算
     COUNTSCAN:count不使用Index进行count时的stage返回
     TEXT:使用全文索引进行查询时候的stage返回
    PROJECTION:限定返回字段时候stage的返回
   注意 凡是出现上述标注的扫描类型的需要重点关注
 2 计划树
   1 nscannedObjects:被扫描的文档数量
   2 nReturned :返回的结果集文档数量
   3 reslen :返回结果集的大小
   4 locks :相关的锁情况
   5 XXms :总耗时

5 在shard.log也同样可以观察到,默认记录值500ms

6  具体sql优化示例

   1  批量操作 

       1 bulkWrite{order:false} 批量写  

          无序写  即便发生错误,其他插入还会继续进行 有序写 发生错误,便会停止,是串行化操作. 由 参数order控制

       2 insertMany{order:false} 批量插入  

         设置无序插入能提高你的插入效率

       3  update { upsert:true}        

           upsert:true:如果要更新的文档不存在的话会插入一条新的记录

       4 findAnyModify{ upsert:true}

  2  分页查询的优化 

 

转载于:https://www.cnblogs.com/danhuangpai/p/10107432.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值