
# 查询命令
需要通过分析执行过程（查询计划）进行检查并优化，以避免慢查询。
**db.collection.find().explain()**
请参见[性能相关](https://support.huaweicloud.com/devg-dds/dds_taps_0003.html#dds_taps_0003__zh-cn_topic_0000001181066806_section145214367518)，更多详细内容请参见[官方文档](https://docs.mongodb.com/manual/reference/method/cursor.explain/)。
#### 注意事项
- 查询的结果，返回的是一个Currsor。Cursor使用完毕后要及时关闭，否则会产生内存堆积。
- 根据查询条件创建必要的索引，索引设计请参见[索引设计规范](https://support.huaweicloud.com/devg-dds/dds_taps_0002.html#dds_taps_0002__zh-cn_topic_0000001181226774_section19619164614271)。
  - 避免COLLSCAN全表扫描。
  
  - 查询条件和索引字段匹配有顺序性。
   
- 对于集群实例，根据业务对表进行合理地分片，分片设计请参见[分片设计规范](https://support.huaweicloud.com/devg-dds/dds_taps_0002.html#dds_taps_0002__zh-cn_topic_0000001181226774_section23466306304)。
- 对于分片表，查询条件要基于shardKey进行，避免出现scatter-gather等不必要的查询。详情请参见[Distributed Queries](https://docs.mongodb.com/manual/core/distributed-queries/#read-operations-to-sharded-clusters)。
- 查询可以指定readConcern级别，详情请参见[Read Concern](https://docs.mongodb.com/manual/reference/read-concern/)。
- 查询可以指定readPerference参数，详情请参见[Read Preference](https://docs.mongodb.com/manual/core/read-preference/)。
 
