MongoDB 监控字段解读和优化?

clipboard.png

这是mongodb freemonitoring 提供的数据, 红色项代表着什么,如何优化?

下面为官方给出的提示说明,不是很清楚该如何优化~
clipboard.png

阅读 2.1k
1 个回答

其实应该解释得很明白了,Query Targeting可以翻译成“查询目标指向性”。当进行查询时会统计两个计数器

  • 每扫描一个文档,scannedObjects += 1;
  • 每找到一个结果,returned += 1

一个健康的系统,其查询应该尽可能使用索引去找到满足条件的数据(IXSCAN)。最理想的情况下scannedObjects:returned = 1:1。最不理想的情况下,系统会生成一个集合扫描(COLLSCAN)的查询计划。COLLSCAN就会导致遍历集合中的所有文档,逐个比较是否符合查询条件。所以scannedObjects:returned = 集合总文档数:returned。因此就会看到很大的Query Targeting值。
当然还有很多是居于中间的情况,比如索引可以满足3个条件中的2个,则先查出2个的结果集,再逐一扫描找出满足第三个条件的结果,可见也会出现一些scannedObjects,但只要保持较小即可。

综上所述,集中精力找出没有命中索引,或者效率不佳的索引进行优化。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进