广告
返回顶部
首页 > 资讯 > 数据库 >MongoDB慢日志查询
  • 491
分享到

MongoDB慢日志查询

2024-04-02 19:04:59 491人浏览 八月长安
摘要

mongoDB system.profile前言Part1:写在最前    说到MonGoDB的慢日志分析,就不得不提到profile分析器,profile分析器将记


MongoDB慢日志查询

mongoDB system.profile

前言

Part1:写在最前

    说到MonGoDB的慢日志分析,就不得不提到profile分析器,profile分析器将记录的慢日志写到system.profile集合下,这个集合是一个固定集合。我们可以通过对这个集合的查询,来了解当前的慢日志,进而对数据库进行优化


Part2:整体环境

MongoDB 3.2.5



实战

Part1:输出示范

在查询system.profile的时候,我们能够观察到所有的操作,包括remove,update,find等等都会被记录到system.profile集合中,该集合中包含了诸多信息,如:


{
   "op" : "query",
   "ns" : "test.c",
   "query" : {
      "find" : "c",
      "filter" : {
         "a" : 1
      }
   },
   "keysExamined" : 2,
   "docsExamined" : 2,
   "cursorExhausted" : true,
   "keyUpdates" : 0,
   "writeConflicts" : 0,
   "numYield" : 0,
   "locks" : {
      "Global" : {
         "acquireCount" : {
            "r" : NumberLong(2)
         }
      },
      "Database" : {
         "acquireCount" : {
            "r" : NumberLong(1)
         }
      },
      "Collection" : {
         "acquireCount" : {
            "r" : NumberLong(1)
         }
      }
   },
   "nreturned" : 2,
   "responseLength" : 108,
   "millis" : 0,
   "execStats" : {
      "stage" : "FETCH",
      "nReturned" : 2,
      "executionTimeMillisEstimate" : 0,
      "works" : 3,
      "advanced" : 2,
      "needTime" : 0,
      "needYield" : 0,
      "saveState" : 0,
      "restoreState" : 0,
      "isEOF" : 1,
      "invalidates" : 0,
      "docsExamined" : 2,
      "alreadyHasObj" : 0,
      "inputStage" : {
         "stage" : "IXSCAN",
         "nReturned" : 2,
         "executionTimeMillisEstimate" : 0,
         "works" : 3,
         "advanced" : 2,
         "needTime" : 0,
         "needYield" : 0,
         "saveState" : 0,
         "restoreState" : 0,
         "isEOF" : 1,
         "invalidates" : 0,
         "keyPattern" : {
            "a" : 1
         },
         "indexName" : "a_1",
         "isMultiKey" : false,
         "isUnique" : false,
         "isSparse" : false,
         "isPartial" : false,
         "indexVersion" : 1,
         "direction" : "forward",
         "indexBounds" : {
            "a" : [
               "[1.0, 1.0]"
            ]
         },
         "keysExamined" : 2,
         "dupsTested" : 0,
         "dupsDropped" : 0,
         "seenInvalidated" : 0
      }
   },
   "ts" : ISODate("2015-09-03T15:26:14.948Z"),
   "client" : "127.0.0.1",
   "allUsers" : [ ],
   "user" : ""}


Part2:输出解读

system.profile.op

这一项主要包含如下几类

  • insert

  • query

  • update

  • remove

  • getmore

  • command


代表了该慢日志的种类是什么,是查询、插入、更新、删除还是其他。


system.profile.ns

该项表明该慢日志是哪个库下的哪个集合所对应的慢日志。


system.profile.query

该项详细输出了慢日志的具体语句和行为


system.profile.keysExamined

该项表明为了找出最终结果MongoDB搜索了多少个key


system.profile.docsExamined

该项表明为了找出最终结果MongoDB搜索了多少个文档


system.profile.keyUpdates

该项表名有多少个index key在该操作中被更改,更改索引键也会有少量的性能消耗,因为数据库不单单要删除旧Key,还要插入新的Key到B-Tree索引中


system.profile.writeConflicts

写冲突发生的数量,例如update一个正在被别的update操作的文档


system.profile.numYield

为了让别的操作完成而屈服的次数,一般发生在需要访问的数据尚未被完全读取到内存中,MongoDB会优先完成在内存中的操作


system.profile.locks

在操作中产生的,锁的种类有多种,如下:

GlobalRepresents global lock.
MMAPV1JournalRepresents MMAPv1 storage engine specific lock to synchronize journal writes; for non-MMAPv1 storage engines, the mode forMMAPV1Journal is empty.
DatabaseRepresents database lock.
CollectionRepresents collection lock.
MetadataRepresents metadata lock.
oplogRepresents lock on the oplog.


锁的模式也有多种,如下:

Lock ModeDescription
RRepresents Shared (S) lock.
WRepresents Exclusive (X) lock.
rRepresents Intent Shared (IS) lock.
wRepresents Intent Exclusive (IX) lock.


system.profile.locks.acquireCoun

在各种不用的种类下,请求锁的次数


system.profile.nreturned

该操作最终返回文档的数量


system.profile.responseLength

结果返回的大小,单位为bytes,该值如果过大,则需考虑limit()等方式减少输出结果


system.profile.millis

该操作从开始到结束耗时多少,单位为毫秒


system.profile.execStats

包含了一些该操作的统计信息,只有query类型的才会显示


system.profile.execStats.stage

包含了该操作的详细信息,例如是否用到索引


system.profile.ts

该操作执行时的时间


system.profile.client

哪个客户端发起的该操作,并显示出该客户端的ip或hostname


system.profile.allUsers

哪个认证用户执行的该操作


system.profile.user

是否认证用户执行该操作,如认证后使用其他用户操作,该项为空





——总结——

system.profile集合是定位慢sql的手段之一,了解每一个输出项的含义有助于我们更快的定位问题。由于笔者的水平有限,编写时间也很仓促,文中难免会出现一些错误或者不准确的地方,不妥之处恳请读者批评指正。



您可能感兴趣的文档:

--结束END--

本文标题: MongoDB慢日志查询

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

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

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

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

下载Word文档
猜你喜欢
  • MongoDB慢日志查询
    MongoDB system.profile前言Part1:写在最前    说到MongoDB的慢日志分析,就不得不提到profile分析器,profile分析器将记...
    99+
    2022-10-18
  • mongodb 慢查询日志使用参考
    mongodb的Profiling功能->慢查询功能    Profiling 把收集到的信息写入到system.profile集合中,system.profile集合是...
    99+
    2022-10-18
  • mysql慢查询日志轮转_MySQL慢查询日志实操
    目录一、概述二、慢查询日志设置1、临时设置2、查询慢查询日志的开启状态和慢查询日志储存的位置3、查看存放日志的形式4、永久开启慢日志三、慢查询测试四、慢查询分析工具五、mysql 清理slowlog方法六、小结一、概述 ...
    99+
    2022-09-12
  • 深入讲解MongoDB的慢日志查询(profile)
    前言 说到MongoDB的慢日志分析,就不得不提到profile分析器,profile分析器将记录的慢日志写到system.profile集合下,这个集合是一个固定集合。我们可以通过对这个集合的查询,来了解...
    99+
    2022-10-18
  • MySQL 慢查询日志
    简介 MySQL 慢查询日志是排查问题 SQL 语句,以及检查当前 MySQL 性能的一个重要功能。 查看是否开启慢查询功能: mysql> mysql> show variables like 'slow_query%'; +...
    99+
    2022-04-20
    MySQL 慢查询日志
  • redis 慢查询日志
    1.什么是slowlogSlow log 是 Redis 用来记录查询执行时间的日志系统。查询执行时间指的是不包括像客户端响应(talking)、发送回复等 IO 操作,而单单是执行一个查询命令所耗费的时间...
    99+
    2022-10-18
  • MySQL慢查询日志
    笔记内容:MySQL慢查询日志 笔记日期:2017-12-10 <br> MySQL日志文件系统的组成 通用查询日志 慢查询日志 和大多数关系型数据库一样,日志文件是MySQL数据库的重要...
    99+
    2022-10-18
  • Mysql 开启慢日志查询及查看慢日志 sql
    本文为博主原创,转载请注明出处: 目录:    1.Mysql 开启慢日志配置的查询    2. 通过sql 设置Mysql 的慢日志开启    3. 通过慢 sql 日志文件查看慢 sql   1.Mysql 开启慢日志配置的查询 m...
    99+
    2017-01-10
    Mysql 开启慢日志查询及查看慢日志 sql
  • 性能分析之MySQL慢查询日志分析(慢查询日志)
    一、背景            MySQL的慢查询日志是MySQL提供的一种日志记录,他用来记录在MySQL中响应的时间超过阈值的语句,具体指运行时间超过long_query_time(默认是10秒)值的SQL,会被记录到慢查询日志中。  ...
    99+
    2023-10-20
    mysql 数据库 慢日志分析 性能优化 慢查询日志
  • Redis慢查询日志及慢查询分析详解
    目录前提介绍单线程命令的处理机制本章内容什么是慢查询慢查询日志Redis慢查询日志Redis慢查询的危害Redis客户端执行一条命令的步骤慢查询引发的问题阈值和慢查询的日志的设置阈值...
    99+
    2023-01-28
    Redis慢查询日志分析 Redis慢查询
  • MySQL自带慢日志排查慢查询SQL
    目录1、查询有关query的相关变量:2、开启慢查询日志3. 设置慢查询阈值4.查看慢查询日志其他方式定位慢SQL 总结根据mysql自带慢日志功能定位慢SQL 1、查询有关query的相关变量: show g...
    99+
    2022-12-15
    mysql如何优化慢查询 mysql排查慢查询sql sql语句慢查询
  • MySQL 慢查询日志工具
    mysqldumpslow 工具 MySQL安装目录下bin 文件 mysqldumpslow.pl文件 启动 perl mysqldumpslow.pl -s t -t 5 c:datadata-slow.log -s order(...
    99+
    2016-10-14
    MySQL 慢查询日志工具
  • 详解mysql慢日志查询
    慢日志查询作用 慢日志查询的主要功能就是,记录sql语句中超过设定的时间阈值的查询语句。例如,一条查询sql语句,我们设置的阈值为1s,当这条查询语句的执行时间超过了1s,则将被写入到慢查询配置的日志中. 慢查询主要...
    99+
    2022-05-19
    MySQL 慢日志查询 MySQL 查询
  • mongodb慢查询
    开启 Profiling 功能1. 直接在启动参数里直接进行设置      启动MongoDB时加上–profile=1 即可     还可以慢查...
    99+
    2022-10-18
  • Mysql通用查询日志和慢查询日志的示例分析
    小编给大家分享一下Mysql通用查询日志和慢查询日志的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!MySQL中的日志包...
    99+
    2022-10-18
  • MySQL高级(五)——慢查询日志
    具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10秒以上的语句。 由他来查看哪些SQL超出了我们的最大忍耐时间值,比如一条sql执行超过...
    99+
    2018-03-26
    MySQL高级(五)——慢查询日志
  • MySQL优化之慢查询日志
    慢查询日志概述 所谓慢查询日志,就是用于记录MySQL中响应时间超过设定阈值的SQL语句,通过打开慢查询开关,MySQL会将大于阈值的SQL记录在日志中,以便于分析性能。 慢查询日志选项默认是关闭的,如果要开启,则需要手动设置。 ...
    99+
    2021-08-28
    MySQL优化之慢查询日志
  • Mysql慢查询日志的过程
    这篇文章主要介绍“Mysql慢查询日志的过程”,在日常操作中,相信很多人在Mysql慢查询日志的过程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Mysql慢查询日志的过程”...
    99+
    2022-10-18
  • mysql慢查询日志是什么
    这篇文章将为大家详细讲解有关mysql慢查询日志是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。定义:mysql提供的一种记录日志的功能,用来记录mysql相应时间超...
    99+
    2022-10-18
  • MYSQL慢查询日志的查看方式
    这篇文章主要介绍“MYSQL慢查询日志的查看方式”,在日常操作中,相信很多人在MYSQL慢查询日志的查看方式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MYSQL慢查询日志...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作