iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >mongodb慢查询分析
  • 196
分享到

mongodb慢查询分析

2024-04-02 19:04:59 196人浏览 安东尼
摘要

1.用慢查询日志(system.profile)找到超过500ms的语句  monGos>db.setProfilingLevel(1,500) 2.然后再通过.explain()

1.用慢查询日志(system.profile)找到超过500ms的语句 

monGos>db.setProfilingLevel(1,500)

2.然后再通过.explain()解析影响行数,分析为什么超过500ms【即看执行计划】 参见下文评论链接

3. 决定是否是缺失索引导致


#查看状态:级别和时间

PRIMARY> db.getProfilingStatus()

{ "was" : 1, "slowms" : 200 }

#查看级别

PRIMARY> db.getProfilingLevel()

1

#设置级别

PRIMARY> db.setProfilingLevel(2)

{ "was" : 1, "slowms" : 100, "ok" : 1 }

#设置级别和时间

PRIMARY> db.setProfilingLevel(1,200)

{ "was" : 2, "slowms" : 100, "ok" : 1 }

 Profiling级别说明

参数:

0:关闭,不收集任何数据。

1:收集慢查询数据,默认是100毫秒。

2:收集所有数据

注意:

  1  以上要操作要是在test集合下面的话,只对该集合里的操作有效,要是需要对整个实例有效,则需要在所有的集合下设置或则在开启的时候开启参数

  2 每次设置之后返回给你的结果是修改之前的状态(包括级别、时间参数)


2:不通过mongo shell


mongoDB启动的时候


mongod --profile=1  --slowms=200


或则在配置文件里添加2行:

profile = 1

slowms = 200

3:关闭Profiling

# 关闭

PRIMARY> db.setProfilingLevel(0)

{ "was" : 1, "slowms" : 200, "ok" : 1 }


4:修改“慢查询日志”的大小

#关闭Profiling

PRIMARY> db.setProfilingLevel(0)

{ "was" : 0, "slowms" : 200, "ok" : 1 }

#删除system.profile集合

PRIMARY> db.system.profile.drop()


慢查询(system.profile)分析 


 3.2: 分析

如果发现 millis 值比较大,那么就需要作优化

1  如果nscanned数很大,或者接近记录总数(文档数),那么可能没有用到索引查询,而是全表扫描。

2  如果 nscanned 值高于 nreturned 的值,说明数据库为了找到目标文档扫描了很多文档。这时可以考虑创建索引来提高效率。


‘type’的返回参数说明:


COLLSCAN  #全表扫描

IXSCAN  #索引扫描

FETCH  #根据索引去检索指定document

SHARD_MERGE  #将各个分片返回数据进行merge

SORT  #表明在内存中进行了排序(与老版本的scanAndOrder:true一致)

LIMIT  #使用limit限制返回数

SKIP  #使用skip进行跳过

IDHACK  #针对_id进行查询

SHARDING_FILTER #通过mongos #对分片数据进行查询

COUNT #利用db.coll.explain().count()之类进行count运算

COUNTSCAN #count不使用Index进行count时的stage返回

COUNT_SCAN #count使用了Index进行count时的stage返回

SUBPLA #未使用到索引的$or查询的stage返回

TEXT #使用全文索引进行查询时候的stage返回

PROJECTioN #限定返回字段时候stage的返回


对于普通查询,我们最希望看到的组合有这些:

Fetch+IDHACK

Fetch+ixscan

Limit+(Fetch+ixscan)

PROJECTION+ixscan

SHARDING_FILTER+ixscan

不希望看到包含如下的type:


COLLSCAN(全表扫),SORT(使用sort但是无index),不合理的SKIP,SUBPLA(未用到index的$or)

对于count查询,希望看到的有:

COUNT_SCAN

不希望看到的有:

COUNTSCAN


4  性能(explain) 参考mongodb 官网链接 见下文评论

您可能感兴趣的文档:

--结束END--

本文标题: mongodb慢查询分析

本文链接: https://www.lsjlt.com/news/46804.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MongoDB使用profile分析慢查询的步骤
    目录01 如何收集慢查询?02 system.profile慢查询集合分析03 慢查询分析利器---explain      在MongoDB中,如果发...
    99+
    2024-04-02
  • 性能分析之MySQL慢查询日志分析(慢查询日志)
    一、背景            MySQL的慢查询日志是MySQL提供的一种日志记录,他用来记录在MySQL中响应的时间超过阈值的语句,具体指运行时间超过long_query_time(默认是10秒)值的SQL,会被记录到慢查询日志中。  ...
    99+
    2023-10-20
    mysql 数据库 慢日志分析 性能优化 慢查询日志
  • Redis慢查询日志及慢查询分析详解
    目录前提介绍单线程命令的处理机制本章内容什么是慢查询慢查询日志Redis慢查询日志Redis慢查询的危害Redis客户端执行一条命令的步骤慢查询引发的问题阈值和慢查询的日志的设置阈值...
    99+
    2023-01-28
    Redis慢查询日志分析 Redis慢查询
  • mongodb分页查询太慢如何解决
    要解决MongoDB分页查询太慢的问题,可以考虑以下几个方面的优化:1. 使用索引:确保查询的字段上创建了适当的索引,特别是分页查询...
    99+
    2023-08-23
    mongodb
  • MySQL的慢查询实例分析
    这篇文章主要介绍“MySQL的慢查询实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL的慢查询实例分析”文章能帮助大家解决问题。1 概念MySQL的慢查询,全名是慢查询日志,是MySQ...
    99+
    2023-06-28
  • MySQL慢查询日志举例分析
    这篇文章主要介绍“MySQL慢查询日志举例分析”,在日常操作中,相信很多人在MySQL慢查询日志举例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL慢查询日志举例...
    99+
    2024-04-02
  • MySQL慢日志查询实例分析
    本篇内容介绍了“MySQL慢日志查询实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、慢查询日志概...
    99+
    2024-04-02
  • mysql慢查询和错误日志分析
    mysql慢查询和错误日志分析和告警查看比较麻烦,目前的慢查询告警都是仅仅反应慢查询数量的。 我们做了一个慢查询日志告警和分析的程序 后台使用filebeat日志文件托运工具,将日志传输到redis数据库。...
    99+
    2024-04-02
  • mongodb慢查询日志怎么设置
    要设置MongoDB的慢查询日志,可以通过以下步骤进行: 打开MongoDB的配置文件。 在配置文件中找到以下选项:slow...
    99+
    2024-04-02
  • java操作mongoDB查询的示例分析
    小编给大家分享一下java操作mongoDB查询的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!java操作mongo查...
    99+
    2024-04-02
  • mongodb查询时快时慢怎么解决
    当MongoDB查询时快时慢,可能有多种原因导致,以下是一些常见的解决方法:1. 索引优化:确保集合中的字段都有适当的索引,以加快查...
    99+
    2023-08-23
    mongodb
  • mongodb有时候查询慢怎么解决
    当 MongoDB 查询变慢时,可以考虑以下几个方面来解决问题:1. 索引优化:在查询经常用到的字段上创建合适的索引,以加快查询速度...
    99+
    2023-08-24
    mongodb
  • php-fpm7.0慢查询设置的示例分析
    这篇文章主要介绍php-fpm7.0慢查询设置的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php-fpm7.0 慢查询设置及说明环境说明root@ubuntu:/home/tb# cat&nbs...
    99+
    2023-06-14
  • Redis中慢查询操作的示例分析
    这篇文章将为大家详细讲解有关Redis中慢查询操作的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。什么是慢查询慢查询的作用:通过慢查询分析,找到有问题的命令进行优...
    99+
    2024-04-02
  • mysql中慢查询优化的示例分析
    这篇文章主要介绍mysql中慢查询优化的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一个用户反映线上一个SQL语句执行时间慢得无法接受。SQL语句看上去很简单(本文描述中修...
    99+
    2024-04-02
  • MongoDB模糊查询操作的示例分析
    这篇文章主要介绍了MongoDB模糊查询操作的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.作用与语法描述作用: 正则表达式是使...
    99+
    2024-04-02
  • nodejs+mongodb aggregate级联查询的示例分析
    小编给大家分享一下nodejs+mongodb aggregate级联查询的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧...
    99+
    2024-04-02
  • Mysql通用查询日志和慢查询日志的示例分析
    小编给大家分享一下Mysql通用查询日志和慢查询日志的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!MySQL中的日志包...
    99+
    2024-04-02
  • MySQL慢查询分析工具pt-query-digest详解
    目录一、简介二、安装pt-query-digest三、pt-query-digest语法及重要选项四、分析pt-query-digest输出结果五、用法示例一、简介 pt-query-digest是用于分析mysql慢查...
    99+
    2023-01-13
    MySQL慢查询分析工具 MySQL慢查询 MySQL慢查询pt-query-diges
  • 总结12个MySQL慢查询的原因分析
    目录1. SQL 没加索引2. SQL 索引不生效2.1 隐式的类型转换,索引失效2.2 查询条件包含 or,可能导致索引失效2.3. like 通配符可能导致索引失效2.5 在索引...
    99+
    2022-11-13
    MySQL慢查询原因分析 MySQL慢查询
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作