当前位置: 首页 > news >正文

网站建设开发报告论文广安北京网站建设

网站建设开发报告论文,广安北京网站建设,wordpress菜单背景,湛江住房和城乡建设局网站MongoDB 提供 db.collection.explain(), cursort.explain() 及 explain 命令获取查询计划及查询计划执行统计信息。 explain 结果将查询计划以阶段树的形式呈现。 每个阶段将其结果#xff08;文档或索引键#xff09;传递给父节点。 叶节点访问集合或索引。 中间节点操纵由…MongoDB 提供 db.collection.explain(), cursort.explain() 及 explain 命令获取查询计划及查询计划执行统计信息。 explain 结果将查询计划以阶段树的形式呈现。 每个阶段将其结果文档或索引键传递给父节点。 叶节点访问集合或索引。 中间节点操纵由子节点产生的文档或索引键。 根节点是MongoDB从中派生结果集的最后阶段。 阶段操作描述,例 COLLSCAN 集合扫描IXSCAN 索引扫描FETCH 检出文档SHARD_MERGE 合并分片中结果SHARDING_FILTER 分片中过滤掉孤立文档LIMIT 使用limit 限制返回数PROJECTION 使用 skip 进行跳过IDHACK 针对_id进行查询COUNT 利用db.coll.explain().count()之类进行count运算COUNTSCAN count不使用Index进行count时的stage返回COUNT_SCAN count使用了Index进行count时的stage返回SUBPLA 未使用到索引的$or查询的stage返回TEXT 使用全文索引进行查询时候的stage返回PROJECTION 限定返回字段时候stage的返回… explain 操作返回结果详解 queryPlanner queryPlanner 显示的是被查询优化器选择出来的查询计划。 以下未分片集合 explain 操作结果如下 {queryPlanner : {plannerVersion : int,namespace : string,indexFilterSet : boolean,parsedQuery : {...},winningPlan : {stage : STAGE1,...inputStage : {stage : STAGE2,...inputStage : {...}}},rejectedPlans : [candidate plan 1,...]}queryPlanner.namespace 一个字符串指定运行查询的命名空间即.。queryPlanner.indexFilterSet boolan值表示MongoDB 对于此query shape 是否使用了索引过滤器。queryPlanner.winningPlan 文档类型详细显示查询优化程序选择的查询计划。 winningPlan.stage 阶段名称。每个阶段都有每个阶段特有的信息。 例如IXSCAN 阶段将包括索引边界以及特定于索引扫描的其他数据。 如果阶段具有子阶段或多个子阶段则阶段将具有inputStage 或 inputStages。winningPlan.inputStage 描述子阶段的文档。它为其父级提供文档或索引键。 如果父级只有一个子级则该字段存在。winningPlan.inputStages 描述子阶段的数组。子阶段为父阶段提供文档或索引键。 如果父级具有多个子节点则该字段存在。 例如$or 表达式或索引交集的阶段消耗来自多个源的输入。 queryPlanner.rejectedPlans 查询优化器考虑和拒绝的候选计划数组。 如果没有其他候选计划则该数组可以为空。 对于分片集合获胜计划包括分每个访问的分片的计划信息数组。 executionStats executionStats 返回的是获胜计划执行相关信息。必须在 executionStats 或 allPlansExecution 详细模式下运行explain才显示executionStats 相关信息。 要捕获选择执行计划期间执行相关信息必须使用 allPlansExecution 模式运行。 executionStats 模式 explain 实例 db.products.explain(executionStats).find({ quantity: { $gt: 50 }, category: apparel } )allPlansExecution 模式 explain 实例 db.products.explain(allPlansExecution).update({ quantity: { $lt: 1000}, category: apparel },{ $set: { reorder: true } } )以下未分片集合 explain 操作结果如下 executionStats : {executionSuccess : boolean,nReturned : int,executionTimeMillis : int,totalKeysExamined : int,totalDocsExamined : int,executionStages : {stage : STAGE1nReturned : int,executionTimeMillisEstimate : int,works : int,advanced : int,needTime : int,needYield : int,isEOF : boolean,...inputStage : {stage : STAGE2,...nReturned : int,executionTimeMillisEstimate : int,keysExamined : int,docsExamined : int,...inputStage : {...}}},allPlansExecution : [{ partial executionStats1 },{ partial executionStats2 },...] }executionStats 描述获胜计划完整的查询执行信息。 对于写入操作是指将要执行修改的信息但不会真实修改数据库。 executionStats.nReturned 查询条件匹配到的文档数量。executionStats.executionTimeMillis 查询计划选择和查询执行所需的总时间以毫秒为单位。executionTimeMillis 对应于早期版本的MongoDB中cursor.explain() 返回的millis字段。executionStats.totalKeysExamined 扫描的索引条目数。totalKeysExamined 对应于早期版本的MongoDB中cursor.explain() 返回的 nscanned字段。executionStats.totalDocsExamined 扫描的文档数。totalDocsExamined 对应于早期版本的MongoDB中cursor.explain() 返回的 nscannedObjects字段。executionStats.executionStages 阶段树形式展示获胜计划完整的执行信息。即一个阶段可以有一个inputStage或多个inputStages。 executionStats.executionStages.works 查询执行阶段执行的“工作单元”的数量。 查询执行阶段将其工作分为小单元。 “工作单位”可能包括检查单个索引键从集合中提取单个文档将投影应用于单个文档或执行内部记账。 executionStats.executionStages.advanced 返回到父阶段的结果数。 executionStats.executionStages.needTime 未将中间结果返回给其父级的工作循环数。 例如索引扫描阶段可以花费一个工作周期来寻找索引中的新位置而不是返回索引关键字; 这个工作周期将计入explain.executionStats.executionStages.needTime而不是explain.executionStats.executionStages.advanced。 executionStats.executionStages.needYield 存储层请求查询系统产生锁定的次数。 executionStats.executionStages.isEOF 执行阶段是否已到达流的结尾 如果为true或1则执行阶段已到达流末尾。如果为false或0则阶段可能仍会返回结果。 例如有限制的查询其执行阶段包含LIMIT阶段其中查询的输入阶段为IXSCAN。 如果查询返回超过指定的限制LIMIT阶段将报告isEOF1但其基础IXSCAN阶段将报告isEOF0。 executionStats.executionStages.inputStage.keysExamined 对于扫描索引的查询执行阶段例如IXSCANkeysExamined是在索引扫描过程中检查的入站和越界键的总数。 如果索引扫描由单个连续范围的键组成则只需要检查入站键。 如果索引边界由若干键范围组成则索引扫描执行过程可以检查越界键以便从一个范围的末尾跳到下一个范围的开头。 考虑以下示例集合包含字段x值为1到100的100个文档其中索引字段为x for(var x1;x100;x){db.keys.insert({x:x}); } db.keys.ensureIndex({x:1}); db.keys.find( { x : { $in : [ 3, 4, 50, 74, 75, 90 ] } } ).explain( executionStats )该查询将扫描键3和4.然后它将扫描键5检测它是否超出界限并跳到下一个键50。 继续该过程查询扫描键3,4,5,50,51,74,75,76,90和91.键5,51,76和91是仍在检查的越界键。 keysExamined的值为10。 executionStats.executionStages.inputStage.docsExamined 在查询执行阶段扫描的文档数。 executionStats.allPlansExecution 包含在计划选择阶段为获胜和拒绝计划捕获的部分执行信息。 仅当explain在allPlansExecution详细模式下运行时该字段才会出现。 serverInfo 对于未分片的集合MongoDB实例explain返回以下信息 serverInfo : {host : string,port : int,version : string,gitVersion : string }对于分片集合explain返回每个访问的分片的serverInfo。 Sharded Collection 对于分片集合explain在shards字段中返回每个访问的分片的核心查询规划器和服务器信息 {queryPlanner : {...winningPlan : {...shards : [{shardName : shard,queryPlanner information for shard,serverInfo for shard},...],},},executionStats : {...executionStages : {...shards : [{shardName : shard,executionStats for shard},...]},allPlansExecution : [{shardName : string,allPlans : [ ... ]},...]} }queryPlanner.winningPlan.shards 每个访问分片的queryPlanner和serverInfo的文档数组。executionStats.executionStages.shards 包含每个访问分片的executionStats的文档数组。 兼容性的修改 在 3.0 版本中的修改。 explain 结果的格式和字段与以前的版本相比有所变化。 以下列出了一些主要差异。 集合扫描 VS 索引使用 如果查询计划程序选择了集合扫描则说明结果包括COLLSCAN阶段。 如果查询计划程序选择索引则说明结果包括IXSCAN阶段。 该阶段包括诸如索引key的匹配遍历方向和索引边界之类的信息。 在早期版本的MongoDB中cursor.explain() 返回了光标字段其值为 用于集合扫描的BasicCursor以及索引扫描的BtreeCursor 索引名称 [方向]。 覆盖查询 当索引覆盖查询时MongoDB可以匹配查询条件并仅使用索引键返回结果; 即MongoDB不需要检查集合中的文档以返回结果。 当索引覆盖查询时解释结果的IXSCAN阶段不是FETCH阶段的后代而在executionStats中totalDocsExamined为0。 在早期版本的MongoDB中cursor.explain() 返回indexOnly字段以指示索引是否覆盖了查询。 索引交叉 对于索引交集计划结果将包括AND_SORTED阶段或AND_HASH阶段其中包含详细说明索引的inputStages数组; 例如。 {stage : AND_SORTED,inputStages : [{stage : IXSCAN,...},{stage : IXSCAN,...}] }在以前版本的MongoDB中cursor.explain() 返回了游标字段其中包含索引交叉点的复杂计划。 $or 表达式 如果MongoDB使用$or 表达式的索引则结果将包含OR阶段其中包含详细说明索引的inputStages数组; 例如。 {stage : OR,inputStages : [{stage : IXSCAN,...},{stage : IXSCAN,...},...] }在早期版本的MongoDB中cursor.explain() 返回了详细索引的子句数组。 Sort 阶段 如果MongoDB可以使用索引扫描来获取请求的排序顺序则结果将不包括SORT阶段。 否则如果MongoDB无法使用索引进行排序则解释结果将包括SORT阶段。 在MongoDB 3.0之前cursor.explain() 返回scanAndOrder字段以指定MongoDB是否可以使用索引顺序返回排序结果。 总结 explain 希望看到的阶段 FetchIDHACK Fetchixscan LimitFetchixscan PROJECTIONixscan SHARDING_FILTERixscan COUNT_SCAN … explain 不希望看到的阶段 COLLSCAN全表扫描 SORT使用sort但是无index 不合理的SKIP SUBPLA未用到index的$or COUNTSCAN 来自个人博客学习园 http://www.xuexiyuan.cn/article/detail/179.html
http://www.pierceye.com/news/137263/

相关文章:

  • 建设网站的群婚礼婚庆网站建设需求分析
  • 全椒县城乡建设局网站网站怎么做营销策划
  • 响应式网站制作流程河北企业建网站
  • 常州新北区有做淘宝网站策划的吗什么建设网站
  • 成品网站源码68w68游戏wordpress php推送示例
  • 博优云软件官方网站wordpress 个人
  • 登封 网站建设烟台网站关键词推广
  • 深圳实惠的专业建站公司淘宝券商城网站制作
  • 珠海手机网站建设成都设计网站
  • 网站mp3播放器代码国家企业信息系统官方
  • 江西建设银行招聘网站pc网站还有必要做吗
  • 网站建设几个要素做网站需要学会什么软件
  • 做视频网站什么平台好站酷设计网站首页
  • 班级网站设计论文网站多国语言
  • 网站制作评价标准网站服务器怎么收费
  • 怎么建立自己的网站平台多少钱wordpress自建菜单
  • 深圳购物网站如何制作外贸网站 wordpress
  • 商品展示网站模板中国建设电工立网站
  • 网站推广的基本方法对于大部分网站来说都是适用的河北网站开发费用
  • 高安网站建设公司外链代发免费
  • 企业网站建设的价格wordpress免费用户
  • 怎么做门淘宝网站广播电台网站建设板块
  • ai效果图网站建设一个视频网站需要什么条件
  • 上海安全建设协会网站推广普通话的方法
  • 自己怎么做外贸英文网站网站建设外包
  • 南京专业网站开发团队wordpress如何构建页面
  • 济南网站优化排名推广python基础教程雪峰
  • 垂直购物网站建设代做网站推广的公司
  • 马云做一网站 只作一次网页界面设计使用色彩的作用是什么
  • 网站上传权限广西网站建设银行