我对mongodb和atlas还是很陌生,并被以下警报所迷惑
Query Targeting: Scanned Objects / Returned has gone above 1000
我希望有更多数据可以帮助调试,例如查询或至少收集数据。查询并不慢,因为性能顾问什么都没发现。
警报中给出的唯一信息是
-创建时间
-副本集
-分片的链接
-分片的类型(主要/次要)
我应该如何调试提示的问题?
答案 0 :(得分:0)
将来的警报中包含有关如何解决该问题的信息-简而言之,就是下载mongodb日志并搜索效率低下的查询。
1。导航到“群集”页面
如果在页面上没有看到所需的集群,请确保已选择>正确的项目
2。选择集群
a。单击包含要下载其日志的mongod实例的集群旁边的省略号图标(...)。
b。选择下载日志。3。在“下载日志”模式中,编辑以下字段
选择进程:选择要为其记录日志的进程。有效选项为mongod和mongod-audit-log。
选择服务器:选择集群中要检索其日志的服务器。
开始时间:在组的时区中指定日期和时间,以定义要返回的日志活动的下限值。开始时间必须少于30天。
结束时间:在组的时区中指定日期和时间,以定义要返回的日志活动的上限(上限)。4。点击下载日志
效率低下的查询is explained here
以下mongod日志条目显示了从效率低下的查询生成的统计信息:
planSummary: COLLSCAN keysExamined:0 docsExamined: 10000 cursorExhausted:1 numYields:234 nreturned:4 protocol:op_query 358ms<Timestamp> COMMAND <query>
此查询扫描了10,000个文档,并且仅返回4个文档,其比率为2500,效率非常低。