修复查询问题
Query Targeting
警报表示一个或多个低效查询。
警报条件
您可以在项目级警报设置页面中配置以下警报条件,以触发警报。
查询目标:如果为完成查询而检查的索引键数量相对于返回文档的实际数量达到或高于特定阈值,则会出现“已扫描/已返回”的情况。
如果为完成查询而检查的文档数量相对于返回文档的实际数量达到或高于特定阈值,则会出现“查询目标:已扫描对象/已返回”。
常见触发器
没有索引支持给定的一个或多个查询。
现有索引只能部分支持一个或多个查询。
解决眼前的问题
Performance Advisor 提供创建索引的最简单、最快捷的方法。Performance Advisor 监控 MongoDB 认为速度慢的查询并推荐索引以提高性能。
单剂慢速查询上的 Create Index ,以查看有关如何创建推荐索引的说明。
注意
如果查询超过慢速查询阈值,并且已扫描文档与已返回文档的比率大于警报中指定的阈值,则可以在不接收性能优化顾问的索引建议的情况下接收查询目标警报。
还可以使用以下资源来确定哪个查询生成该警报:
实时性能面板监控并显示 MongoDB Atlas 集群中托管 MongoDB 的计算机上的当前网络流量和数据库操作。
MongoDB 日志维护 MongoDB Atlas 集群中每个
mongod
实例的活动(包括查询)帐户。cursor.explain()
mongosh
的命令提供所有查询的性能详细信息。数据分析器会记录与集群上所有操作的平均执行时间相比,MongoDB Atlas 认为速度较慢的操作。
注意
启用数据库分析器会产生性能开销。
实施长期解决方案
要了解有关查询性能的更多信息,请参阅:
监控您的进度
Ops Manager 提供两种可视化查询目标的方法: