explain()方法能够提供大量与查询相关的信息。对于速度比较慢的查询来说,它是最重要的性能分析工具之一。通过查看一个查询的explain()输出信息,可以知道查询使用了哪个索引,以及是如何使用的。对于任意查询,都可以在最后添加一个explain()调用(与调用sort()或者limit()一样,不过explain()必须放在最后)。

最常见的explain()输出有两种类型:使用索引的查询和没有使用索引的查询。其输出的信息可能如下:

“millis”表明了这个查询的执行时间。数字越小,则说明这个查询的效率越高。

“n”则表明了实际返回的文档数量。

“nscanned“描述了MongoDB在执行这个查询时搜索了多少文档。

”cursor“本查询返回值为”BasicCursor“则说明该查询未使用索引,所以才会搜索了所有的文档。如返回”BtreeCursor“则表示查询中使用了索引。

”isMultiKey“用于说明是否使用了多键索引。

”nYield“指本次查询暂停的次数。在查询期间,如果有与入请求需要处理,为了让写入请求能够顺利执行,查询会周期性的释放它的锁。

MongoDB查询性能分析相关推荐

  1. MongoDB查询性能分析—— explain 操作返回结果详解

    MongoDB 提供 db.collection.explain(), cursort.explain() 及 explain 命令获取查询计划及查询计划执行统计信息. explain 结果将查询计划 ...

  2. MySQL简单查询性能分析

    MySQL简单查询性能分析  建立如此结构的数据表,并插入110万条随机记录,进行查询性能测试.   插入110万条随机记录后,数据表的大小为102MB. 现在使用phpMyAdmin自带的SQL查询 ...

  3. ElasticSearch之查询性能分析

    本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力. [TOC] 提问 面对着这么一个庞然大物,我们除了代码API写的六 ...

  4. [MySQL]--查询性能分析工具-explain关键字

    explain显示了MySQL如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. explain的使用方法很简单,只需要在select查询语句前面加上expl ...

  5. Es底层查询原理、数据结构、及性能分析

      Elasticsearch是一个很火的分布式搜索系统,提供了非常强大而且易用的查询和分析能力,包括全文索引.模糊查询.多条件组合查询.地理位置查询等等,而且具有一定的分析聚合能力.因为其查询场景非 ...

  6. 数据切分——Mysql分区表的建立及性能分析

    Mysql的安装方法可以参考: http://blog.csdn.net/jhq0113/article/details/43812895 Mysql分区表的介绍可以参考: http://blog.c ...

  7. MongoDB 分析查询性能

    cursor.explain("executionStats")和 db.collection.explain("executionStats") 方法提供关于 ...

  8. 时间序列数据和MongoDB:第三部分 - 查询,分析和呈现时间序列数据

    作者:Robert Walters 译者:刘东华 (Martin Liu) 在 时间序列数据和MongoDB中:第一部分 - 简介 我们回顾了您需要了解的关键问题,以了解数据库的查询访问模式.在 时间 ...

  9. mac mongodb可视化工具_「时序数据库」和MongoDB:第3部分-查询、分析和呈现

    在<时间序列数据和MongoDB:第1部分-简介>中,我们回顾了理解数据库的查询访问模式需要询问的关键问题.在<时间序列数据和MongoDB:第2部分-模式设计最佳实践>中,我 ...

最新文章

  1. 全面讲述linux集群负载均衡
  2. PROC简单使用用例--VC连接ORACLE
  3. PageOffice实现js执行在线编辑时Word文档中的宏命令
  4. centos php配置mysql数据库_CentOS+Nginx+PHP+MySQL详细配置(图解)
  5. redis-server.exe redis.windows.conf 报错
  6. 小技巧:Chrome开发者工具里的Alt+单击
  7. 如何从SAP Fiori Launchpad里找到ABAP Development Tool的下载地址
  8. centos6.6 源码安装mysql5.5_CentOS6.x下源码安装MySQL5.5
  9. 【漫画】最近,老王又双叒get了CDN的新技能—可编程化敏捷开发
  10. LVS三种请求转发方式和八种调度算法简介
  11. netty实现简单时事通讯_简单的Java实现Netty进行通信
  12. AppList.json文件为空,主界面清缓存后加载后还正常显示
  13. c语言case两个变量的组合,我可以使用带有两个变量的case/switch语句吗?
  14. css表示屏幕宽度和高度
  15. Activity内部Handler引起内存泄露的原因分析
  16. mysql5.0查询表_Mysql5.0查询表结构 | 学步园
  17. Jersey框架入门学习
  18. 微信小程序开发 - 模板与配置
  19. go每日新闻--2021-01-16
  20. u盘提示需要格式化?怎么实现数据恢复?

热门文章

  1. uniapp预览图片不显示的问题
  2. win10 家庭版 1903.18362 无法远程桌面连接
  3. Web开发中数据表格常见的7类筛选设计
  4. java分表插件_shardbatis实现分表
  5. Add Configuration
  6. ARMv8-A编程指导之MMU(4)
  7. Oder By 原理
  8. 【认证】赢在国家软考-中高级考前培训大纲-讲师团俊平老师主讲
  9. 一次通过国家软考信息系统项目管理师的心得体会
  10. JAVA布局模式:GridBagConstraints