性能测试实战 30 讲
高楼
前 HP 高级性能专家,7DGroup 创始人
45941 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 37 讲
性能测试实战 30 讲
15
15
1.0x
00:00/00:00
登录|注册

23丨MySQL:数据库级监控及常用计数器解析(下)

思考题
总结
mysql_exportor+Prometheus+Grafana
SQL剖析
定向抓取SQL
总体思路
数据库性能分析

该思维导图由 AI 生成,仅供参考

上一篇文章中,我们讲了有关数据库的全局分析,那么在今天的文章中,我们继续看看在数据库中,如何做定向分析。
还记得我在上篇文章中提到的工具吗?mysqlreport、pt-query-digest 和 mysql_exportor+Prometheus+Grafana。我们在上一篇中已经讲完了 mysqlreport,今天我们来看看剩下的这几个。

定向抓取 SQL:pt-query-digest

pt-query-digest是个挺好的工具,它可以分析slow loggeneral logbinary log,还能分析 tcpdump 抓取的 MySQL 协议数据,可见这个工具有多强大。pt-query-digest属于 Percona-tool 工具集,这个 Percona 公司还出了好几个特别好使的监控 MySQL 的工具。
pt-query-digest分析 slow log 时产生的报告逻辑非常清晰,并且数据也比较完整。执行命令后就会生成一个报告。
我来稍微解释一下这个报告。我们先看这个报告的第一个部分:
# 88.3s user time, 2.5s system time, 18.73M rss, 2.35G vsz
# Current date: Thu Jun 22 11:30:02 2017
# Hostname: localhost
# Files: /Users/Zee/Downloads/log/10.21.0.30/4001/TENCENT64-slow.log.last
# Overall: 210.18k total, 43 unique, 0.26 QPS, 0.14x concurrency _________
# Time range: 2017-06-12 21:20:51 to 2017-06-22 09:26:38
# Attribute total min max avg 95% stddev median
# ============ ======= ======= ======= ======= ======= ======= =======
# Exec time 118079s 100ms 9s 562ms 2s 612ms 293ms
# Lock time 15s 0 7ms 71us 119us 38us 69us
# Rows sent 1.91M 0 48.42k 9.53 23.65 140.48 2.90
# Rows examine 13.99G 0 3.76M 69.79k 101.89k 33.28k 68.96k
# Rows affecte 3.36M 0 1.98M 16.76 0.99 4.90k 0
# Query size 102.82M 6 10.96k 512.99 719.66 265.43 719.66
从上表中可以看得出来,在这个慢日志中,总执行时间达到了 118079s,平均执行时间为 562ms,最长执行时间为 9s,标准方差为 612ms。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入介绍了MySQL数据库性能分析工具和技术,重点关注了pt-query-digest和profiling的使用。pt-query-digest作为一个强大的工具,能够分析MySQL的日志数据,提供清晰的报告和负载分析,帮助用户快速定位慢查询。文章还强调了对于实时业务,SQL执行的平均时间应控制在100ms以内,并介绍了如何通过执行计划和profiling进行SQL的详细分析和优化。通过具体的操作步骤和示例,展示了如何使用profiling工具进行SQL语句的性能分析和优化,以及如何通过创建索引来改善查询性能。此外,文章还提到了全局监控-定向监控的分析思路,以及MySQL分析决策树的思路。对于需要优化数据库性能的读者来说,本文内容丰富,涵盖了数据库性能分析的多个方面,具有很高的参考价值。同时,文章还提到了mysql_exportor+Prometheus+Grafana的组合,为读者提供了更多全局监控工具的选择。总的来说,本文为读者提供了实用的指导,帮助他们更好地理解和应用这些工具和技术于实际工作中。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《性能测试实战 30 讲》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(18)

  • 最新
  • 精选
  • 张红占
    干货太多了,课程价格严重低估了!

    作者回复: 多谢支持,后面要不我写点湿的。😄

    2020-02-14
    13
  • Geek_f93234
    数据库分析的大体思路是什么吗? 全局分析--定向分析 1.全局分析:分析数据库硬件配置,数据库配置,SQL语句,采用全局监控工具如mysqlreport工具收集到的测试数据,分析可能存在的问题; 2.定向分析:如:针慢查询导致的性能问题,采用pt-query-digest工具分析慢查询日志抓取存在问题的sql,利用profiling分析sql语句的每一个层级,查看sql执行计划,对sql进行优化。 如何在数据库中迅速找到一个慢 SQL 的根本原因呢? profiling分析sql语句的每一个层级,结合sql语句执行计划分析慢sql根本原因

    作者回复: 抓住重点了。

    2020-02-14
    10
  • 凯耐
    数据库慢SQL分析基本思路: 1.配置慢sql条件,将满足条件的sql写入慢查询日志 2.通过explain工具解析sql,判断是否加了索引或索引是否失效 3.如果没有索引,在数据表添加合适的索引,再执行sql,看执行时间。 4.添加索引sql执行时间没有优化那就从sql编写逻辑过于复杂导致查询过慢 5.当然硬件配置,数据库配置都会影响数据库sql的执行时间

    作者回复: 还有第0条,就是查看全局监控数据,像mysqlreport这样的数据。

    2021-03-12
    3
  • 村夫
    老师,网上都建议Mysql要关闭query cache,我看您的示例是开启呢,所以执行同一个sql会读缓存。如果关闭了,偷懒的办法是没有用的吧

    作者回复: 查询的话有效果。看应用。

    2020-03-22
    2
  • 程科长
    问题一: 先全局,在定向分析 问题二: profiling,它可以把 SQL 执行的每一个步骤详细列出来,从一个 SQL 进入到数据库中,到执行完这整个生命周期。 MySQL 的profiling在session级生效,所以当你用了慢日志,知道哪个 SQL 有问题之后,再用这个功能是最见成效的。

    作者回复: 看起来是理解了。

    2022-04-24
    1
  • 月亮和六便士
    看完昨天和今天的专栏,我有个想法,不管三七二十一,一上来先把慢日志拎出来,分析,然后执行计划,三板斧耍完了,然后在开始工作......

    作者回复: 学到精髓了。😀😀

    2020-03-12
    1
  • OM
    数据库方面的性能诊断涉及操作系统层,网络层,存储层,应用层,通常将关联数据库的其他层通过诊断分析确定是否与数据库有关系,缩小诊断范围和找到性能问题症结。

    作者回复: 对。

    2023-08-02归属地:浙江
  • Geek_33192c
    初学者得从哪里学起

    作者回复: 这个专栏还不够初级吗?

    2023-03-27归属地:广东
  • 学习学个屁
    mac 如何安装 pt-query-digest 总是安装不成功

    作者回复: 好像我没在mac下安装过哦。

    2021-09-25
  • 学习学个屁
    这些工具有搭建教程吗老师

    作者回复: 等我以后写一个专门讲工具的专栏吧。😊

    2021-09-25
收起评论
显示
设置
留言
18
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部