mongodb查询语句_Mongodb性能优化之慢查询+语句执行计划

本文介绍了如何在MongoDB中设置和分析慢查询日志,以及如何利用mtools工具进行查询性能分析。通过调整operationProfiling参数和使用explain方法查看执行计划,可以有效优化MongoDB的查询性能。文章还提到了执行计划的不同模式,如queryPlanner、executionStats和allPlansExecution,以及最优的执行计划类型IDHACK。
摘要由CSDN通过智能技术生成
1、概述

不管是在关系型还是非关系型数据库中,查询语句的优化在数据库的的优化中占了很大比例。在Oracle中,通过性能视图,可以获取TOPSQL,而在Mysql、PG、Mongodb这些稍小型的数据库中,均只能通过设置慢查询阈值的方式,获取慢SQL。在Mysql中,慢日志有独立的慢日志文件,而PG和Mongo中慢日志都是输出到数据库的运行日志里面。在Mongodb中,数据库在输出慢日志的同时会显示语句执行时的执行计划。

[ 2、慢日志配置 ]

Mongodb慢日志通过如下参数设置:

operationProfiling:
   mode: slowOp  --表示抓取慢查询

   slowOpThresholdMs: 200  --抓取执行时间超过200ms的查询

也可以在实例启动后,在数据库层动态的设置慢查询阈值db.setProfilingLevel(1,{ slowms: 200 })。

设置之后,在当前数据库中会产生一个名为system.profile的集合,该集合是一个capped集合,固定大小为1MB,当超过1MB后,会自动覆盖旧数据。使用showprofile可以显示最近的5条慢查询记录以及语句的执行计划。

同时,在配置了慢查询阈值后,mongodb会在运行日志中打印出慢日志,如下:
2020-09-27T01:22:41.310+0800 I WRITE    [conn5161055] update res***ce.Resour****gLo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值