1.执行计划各种字段意义

  • COLLSCAN
    全表扫描,避免
  • IXSCAN
    索引扫描,可以改进 选用更高效的索引
  • FETCH
    根据索引去检索指定document
  • SHARD_MERGE
    将各个分片返回数据进行merge,尽可能避免跨分片查询
  • SORT
    表明在内存中进行了排序(与老版本的scanAndOrder:true一致),排序要有index
  • LIMIT
    使用limit限制返回数,要有限制 Limit+(Fetch+ixscan)最优
  • SKIP
    使用skip进行跳过,避免不合理的skip
  • IDHACK
    针对_id进行查询,推荐,_id 默认主键,查询速度快
  • SHARDING_FILTER
    通过mongos对分片数据进行查询,SHARDING_FILTER+ixscan最优
  • COUNT
    利用db.coll.explain().count()之类进行count运算
  • COUNTSCAN
    count不使用Index进行count时的stage返回,避免 这种情况建议加索引
  • COUNT_SCAN
    count使用了Index进行count时的stage返回,推荐
  • SUBPLA
    未使用到索引的$or查询的stage返回,避免
  • TEXT
    使用全文索引进行查询时候的stage返回
  • PROJECTION
    限定返回字段时候stage的返回,选择需要的数据, 推荐PROJECTION+ixscan