mongodb Mongodb Compass

ㅤㅤㅤ
ㅤㅤㅤ
ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ(想象力比知识重要。因为知识是有限的,而想象力概括着世界上的一切,推动着世界的进步,并且是知识进化的源泉。 —— 阿尔伯特·爱因斯坦)
ㅤㅤㅤ
ㅤㅤㅤ
ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤcontent

Mongodb Compass

https://docs.mongodb.com/compass/master/manage-data/

MongoDB的GUI。直观地浏览您的数据并快速查询。借助完整的CRUD功能与您的数据进行交互。查看和优化查询性能。在Linux,Mac或Windows上可用。Compass使您能够做出更明智的索引,文档验证等决策

Compass 安装

https://www.mongodb.com/try/download/compass

在这里插入图片描述

目前我安装的版本是 ubuntu Version 1.21.2

Compass 顶栏功能

  • Connect 连接配置
  • Connect to 弹出新的窗口,用于创建新的连接
  • Disconnect 断开当前数据库连接
  • Exit 退出当前程序
  • View 视图配置
  • Reload 重新加载当前程序
  • Reload Data 重新加载当前数据库数据
  • Actual Size 调整尺寸大小
  • Zoom In 放大窗口
  • Zoom Out 缩小窗口
  • Toggle DevTools 开发者模式

Compass连接远程数据库

在这里插入图片描述

Compass 主界面

在这里插入图片描述

在这里插入图片描述

Compass 操作界面

Documents

在这里插入图片描述

Aggregations

在这里插入图片描述

Schema

在这里插入图片描述

Explain Plan

在这里插入图片描述

"queryPlanner" : {   // 查询计划
        "plannerVersion" : 1,   
        "namespace" : "test.testindex",  // 查询的表名
        "indexFilterSet" : false,  //针对该query是否有indexfilter ???
        "parsedQuery" : {  // 查询条件
            "id" : {
                "$lt" : 97
            }
        },
        "winningPlan" : {// 查询优化器针对该query所返回的最优执行计划的详细内容。
            "stage" : "FETCH",// FETC: 可以理解为通过返回的index位置去检索具体的文档???
            "inputStage" : {
                "stage" : "IXSCAN",  // 表示进行的是index scanning
                "keyPattern" : { // 索引内容
                    "id" : 1,
                    "age" : 1
                },
                "indexName" : "id_1_age_1", // 使用的索引
                "isMultiKey" : false, // 非复合索引 如果索引建立在array上,此处将是true
                "multiKeyPaths" : {
                    "id" : [ ],
                    "age" : [ ]
                },
                "isUnique" : false,
                "isSparse" : false,
                "isPartial" : false,
                "indexVersion" : 2,
                "direction" : "forward", //此query的查询顺序,此处是forward,如果用了.sort({$filed:-1})将显示backward
                "indexBounds" : {
                    "id" : [
                        "[-inf.0, 97.0)" // winningplan所扫描的索引范围 $lt:97
                    ],
                    "age" : [
                        "[MinKey, MaxKey]"
                    ]
                }
            }
        },
        "rejectedPlans" : [ ]
    },
    "executionStats" : {
        "executionSuccess" : true,  // 是否执行成功
        "nReturned" : 97,    // 结果返回条数
        "executionTimeMillis" : 0, // 整体执行时间 单位毫秒
        "totalKeysExamined" : 97, // 索引扫描个数
        "totalDocsExamined" : 97, // 文档扫描个数
        "executionStages" : {
            "stage" : "FETCH",
            "nReturned" : 97,
            "executionTimeMillisEstimate" : 0, //该查询根据index去检索document获取97条具体数据的时间
            "works" : 98,
            "advanced" : 97,
            "needTime" : 0,
            "needYield" : 0,
            "saveState" : 0,
            "restoreState" : 0,
            "isEOF" : 1,
            "invalidates" : 0,
            "docsExamined" : 97,
            "alreadyHasObj" : 0,
            "inputStage" : {
                "stage" : "IXSCAN",
                "nReturned" : 97, //最理想状态 nReturned=totalKeysExamined & totalDocsExamined=0 / nReturned=totalKeysExamined=totalDocsExamined
                "executionTimeMillisEstimate" : 0,//该查询扫描97行index所用时间
                "works" : 98,
                "advanced" : 97,
                "needTime" : 0,
                "needYield" : 0,
                "saveState" : 0,
                "restoreState" : 0,
                "isEOF" : 1,
                "invalidates" : 0,
                "keyPattern" : {
                    "id" : 1,
                    "age" : 1
                },
                "indexName" : "id_1_age_1",
                "isMultiKey" : false,
                "multiKeyPaths" : {
                    "id" : [ ],
                    "age" : [ ]
                },
                "isUnique" : false,
                "isSparse" : false,
                "isPartial" : false,
                "indexVersion" : 2,
                "direction" : "forward",
                "indexBounds" : {
                    "id" : [
                        "[-inf.0, 97.0)"
                    ],
                    "age" : [
                        "[MinKey, MaxKey]"
                    ]
                },
                "keysExamined" : 97,
                "seeks" : 1,
                "dupsTested" : 0,
                "dupsDropped" : 0,
                "seenInvalidated" : 0
            }
        }
    },
    "serverInfo" : {
        "host" : "centos01",
        "port" : 27017,
        "version" : "4.0.9",
        "gitVersion" : "fc525e2d9b0e4bceff5c2201457e564362909765"
    },
    "ok" : 1
stage的类型:
    COLLSCAN:全表扫描
   IXSCAN:索引扫描
    FETCH:根据索引去检索指定document
    SHARD_MERGE:将各个分片返回数据进行merge
    SORT:表明在内存中进行了排序
    LIMIT:使用limit限制返回数
    SKIP:使用skip进行跳过
    IDHACK:针对_id进行查询
    SHARDING_FILTER:通过mongos对分片数据进行查询
    COUNT:利用db.coll.explain().count()之类进行count运算
    COUNTSCAN:count不使用Index进行count时的stage返回
    COUNT_SCAN:count使用了Index进行count时的stage返回
    SUBPLA:未使用到索引的$or查询的stage返回
    TEXT:使用全文索引进行查询时候的stage返回
    PROJECTION:限定返回字段时候stage的返回
stage的组合(查询的时候尽可能用上索引):
    Fetch+IDHACK
    Fetch+ixscan
    Limit+(Fetch+ixscan)
    PROJECTION+ixscan
    SHARDING_FITER+ixscan
    COUNT_SCAN
    如下的stage效率比较低下:
    COLLSCAN(全表扫描),SORT(使用sort但是无index),不合理的SKIP,SUBPLA(未用到index的$or),COUNTSCAN(不使用index进行count)
indexes

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值