iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >【MongoDB学习笔记24】MongoDB的explain和hint函数
  • 908
分享到

【MongoDB学习笔记24】MongoDB的explain和hint函数

2024-04-02 19:04:59 908人浏览 薄情痞子
摘要

一、explain函数explain函数可以提供大量查询相关的信息,如果是慢查询,它最重要的诊断工具。例如:在有索引的字段上查询:> db.post.find({"loc.city":"ny

一、explain函数

explain函数可以提供大量查询相关的信息,如果是慢查询,它最重要的诊断工具。例如:

在有索引的字段上查询:

> db.post.find({"loc.city":"ny"}).explain()   
{    
    "cursor" : "BtreeCursor loc.city_1",    
    "isMultiKey" : false,    
    "n" : 0,    
    "nscannedObjects" : 0,    
    "nscanned" : 0,    
    "nscannedObjectsAllPlans" : 0,    
    "nscannedAllPlans" : 0,    
    "scanAndOrder" : false,    
    "indexOnly" : false,    
    "nYields" : 0,    
    "nChunkSkips" : 0,    
    "millis" : 1,    
    "indexBounds" : {    
        "loc.city" : [    
            [    
                "ny",    
                "ny"    
            ]    
        ]    
    },    
    "server" : "localhost.localdomain:27017",    
    "filterSet" : false    
}    
>

在没有索引的的字段上查询:

> db.post.find({"name":"joe"}).explain()   
{    
    "cursor" : "BasicCursor",    
    "isMultiKey" : false,    
    "n" : 2,    
    "nscannedObjects" : 15,    
    "nscanned" : 15,    
    "nscannedObjectsAllPlans" : 15,    
    "nscannedAllPlans" : 15,    
    "scanAndOrder" : false,    
    "indexOnly" : false,    
    "nYields" : 0,    
    "nChunkSkips" : 0,    
    "millis" : 0,    
    "server" : "localhost.localdomain:27017",    
    "filterSet" : false    
}    
>

对比上面两个查询,对explain结果中的字段的解释:

“cursor”:“BasicCursor”表示本次查询没有使用索引;“BtreeCursor  loc.city_1 ”表示使用了loc.city上的索引;

“isMultikey”表示是否使用了多键索引;

“n”:本次查询返回的文档数量;

“nscannedObjects”:表示按照索引指针去磁盘上实际查找实际文档的次数;

”nscanned“:如果没有索引,这个数字就是查找过的索引条目数量;

“scanAndOrder”:是否对结果集进行了排序

“indexOnly”:是否利用索引就能完成索引;

“nYields”:如果在查询的过程中有写操作,查询就会暂停;这个字段代表在查询中因写操作而暂停的次数;

“ millis”:本次查询花费的次数,数字越小说明查询的效率越高;

“indexBounds”:这个字段描述索引的使用情况,给出索引遍历的范围。

"filterSet" : 是否使用和索引过滤;

 

二、hint函数

如果发现mongoDB使用的索引和自己企望的索引不一致。,可以使用hit函数强制MonGoDB使用特定的索引。例如

>db.users.find({“age”:1,”username”:/.*/}).hint({“username”:1,”age”:1})


您可能感兴趣的文档:

--结束END--

本文标题: 【MongoDB学习笔记24】MongoDB的explain和hint函数

本文链接: https://www.lsjlt.com/news/50796.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作