性能分析之MySQL慢查询日志分析(慢查询日志)

这篇具有很好参考价值的文章主要介绍了性能分析之MySQL慢查询日志分析(慢查询日志)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、背景   

        MySQL的慢查询日志是MySQL提供的一种日志记录,他用来记录在MySQL中响应的时间超过阈值的语句,具体指运行时间超过long_query_time(默认是10秒)值的SQL,会被记录到慢查询日志中。

        慢查询日志一般用于性能分析时开启,收集慢SQL然后通过explain进行全面分析,一般来说,生产是不会开启的,收集慢查询语句是十分耗性能的,但是我们在测试环境是可以模拟分析的,优化SQL语句,接下来就通过实战,讲解如何开启慢日志查询以及如何分析。

二、慢查询日志开启   

1)查看是否开启,默认是关闭的

show VARIABLES like '%slow_query_log%'

可以看到默认慢日志的保存文件以及状态 

性能分析之MySQL慢查询日志分析(慢查询日志),MySQL实战开发,mysql,数据库,慢日志分析,性能优化,慢查询日志

2)开启:

#只会开启当前MySQL的慢日志查询,如果需要永久的话需要修改my.cnf/my.ini文件

set GLOBAL slow_query_log=1

3)查看默认慢查询sql默认时间,大于10秒,没有等于

show VARIABLES like 'long_query_time%'

性能分析之MySQL慢查询日志分析(慢查询日志),MySQL实战开发,mysql,数据库,慢日志分析,性能优化,慢查询日志

4)设置sql查询超时时间

set GLOBAL long_query_time=3

但是修改为不会立即生效,两种办法:

  • 关闭数据库回话重新连接
  • 使用 show global VARIABLES like 'long_query_time%' 查看

三、模拟慢sql并分析

由于本次数据库安装通过docker安装,所以需要进入到mysql容器内部去查看慢日志,上面看到慢日志地址/var/lib/mysql/dca928abb464-slow.log,也是mysql容器里面的。

1)docker进入MySQL容器

docker exec -it e1066fe2db35(mysql容器) /bin/bash

2)此时进入mysql环境,当未登录进入,可以查看slow_query_log_file文件信息

cat /var/lib/mysql/dca928abb464-slow.log

3)Navicat客户端模拟,查询超时,睡眠4秒,由于我们上面设置了查询超过3s保存慢日志

select sleep(4);

性能分析之MySQL慢查询日志分析(慢查询日志),MySQL实战开发,mysql,数据库,慢日志分析,性能优化,慢查询日志

 4)再一次查看cat /var/lib/mysql/dca928abb464-slow.log 文件,可以看到那个sql语句变慢了,以及耗时多久

性能分析之MySQL慢查询日志分析(慢查询日志),MySQL实战开发,mysql,数据库,慢日志分析,性能优化,慢查询日志

 只要是超过long_query_time的sql都会被记录

性能分析之MySQL慢查询日志分析(慢查询日志),MySQL实战开发,mysql,数据库,慢日志分析,性能优化,慢查询日志

5)查看当前数据有多少条慢sql 

show GLOBAL  STATUS like '%slow_queries%'

性能分析之MySQL慢查询日志分析(慢查询日志),MySQL实战开发,mysql,数据库,慢日志分析,性能优化,慢查询日志

 6)慢日志分析工具:mysqldumpslow,这个大家有兴趣的可以去详细了解如何使用。

指定日志文件,查看记录集中最多的sql

mysqldumpslow -s r -t 10 /var/lib/mysql/dca928abb464-slow.log

性能分析之MySQL慢查询日志分析(慢查询日志),MySQL实战开发,mysql,数据库,慢日志分析,性能优化,慢查询日志

三、总结

本文通过实战demo,一步一步配置分析如何利用慢日志去定位查询耗时的sql语句,在实际工作中,一般将生产的数据拷贝到测试环境,在测试环境开启慢日志,模拟生产接口调用,进而去查看慢日志文件,定位是那个sql耗时的。文章来源地址https://www.toymoban.com/news/detail-654015.html

到了这里,关于性能分析之MySQL慢查询日志分析(慢查询日志)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据库性能测试实践:慢查询统计分析

    查看是否开启慢查询 mysql show variables like \\\'%slow%’; 如图所示: 系统变量log_slow_admin_statements 表示是否将慢管理语句例如ANALYZE TABLE和ALTER TABLE等记入慢查询日志 启用log_slow_extra系统变量 (从MySQL 8.0.14开始提供)将导致服务器将几个额外字段写入日志 Log_slow_slave_statements 从库默认

    2024年02月07日
    浏览(56)
  • 【jvm系列-13】jvm性能调优篇---参数设置以及日志分析

    JVM系列整体栏目 内容 链接地址 【一】初识虚拟机与java虚拟机 https://blog.csdn.net/zhenghuishengq/article/details/129544460 【二】jvm的类加载子系统以及jclasslib的基本使用 https://blog.csdn.net/zhenghuishengq/article/details/129610963 【三】运行时私有区域之虚拟机栈、程序计数器、本地方法栈 https

    2024年02月06日
    浏览(77)
  • Go应用性能分析实战

    Go很适合用来开发高性能网络应用,但仍然需要借助有效的工具进行性能分析,优化代码逻辑。本文介绍了如何通过go test benchmark和pprof进行性能分析,从而实现最优的代码效能。原文: Profiling Go Applications in the Right Way with Examples [1] Go Gopher为\\\"A Journey With Go\\\"创作的插图,作者Re

    2024年02月22日
    浏览(51)
  • 【MYSQL高级】Mysql的SQL性能分析【借助EXPLAIN分析】

    要说sql有问题,需要拿出证据,因此需要性能分析 Mysql中有专门负责优化SELECT语句的优化器模块,主要功能:通过计算分析系统中收集到的统计信息,为客户端请求的Query提供他认为最优的执行计划(它认为最优的数据检索方式,不见得是DBA认为是最优的,这部分最耗费时间,

    2024年02月15日
    浏览(66)
  • MySQL性能分析常见方式

    1、慢查询SQL日志 查看慢SQL是否开启 执行下面的命令开启慢查询日志 修改慢查询阈值 查看设置的慢查询时间 查看慢查询日志位置 查看慢查询数目 mysqldumpslow MySQL提供了的日志分析工具,可以帮助我们分析日志,查找、分析SQL。 删除慢SQL日志 最后要关闭慢SQL日志,不然可能

    2024年02月07日
    浏览(42)
  • Mysql的SQL性能分析【借助EXPLAIN分析】

    要说sql有问题,需要拿出证据,因此需要性能分析 Mysql中有专门负责优化SELECT语句的优化器模块,主要功能:通过计算分析系统中收集到的统计信息,为客户端请求的Query提供他认为最优的执行计划(它认为最优的数据检索方式,不见得是DBA认为是最优的,这部分最耗费时间,

    2024年02月12日
    浏览(73)
  • MySQL性能分析工具的使用

    当我们遇到数据库调优问题的时候,该如何思考呢?这里把思考的流程整理成下面这张图。 整个流程划分成了 观察( Show status ) 和 行动( Action ) 两个部分。字母 S 的部分代表观察(会使用相应的分析工具),字母 A 代表的部分是行动(对应分析可以采取的行动)。    

    2024年02月09日
    浏览(58)
  • MySQL 优化—— SQL 性能分析

    MySQL 客户端连接成功后,通过 show [session | global] status 命令可以提供服务其状态信息。通过下面指令,可以查看当前数据库 CRUD 的访问频次: SHOW GLOBAL STATUS LIKE \\\'Com_______\\\'; 七个下划线代表这个七个占位。 查询数据库中整体的 CURD 频次,一般针对 select 比较多的数据库。 慢查询

    2024年02月13日
    浏览(65)
  • MySQL高级篇——性能分析工具

     导航:   【黑马Java笔记+踩坑汇总】JavaSE+JavaWeb+SSM+SpringBoot+瑞吉外卖+SpringCloud+黑马旅游+谷粒商城+学成在线+设计模式+牛客面试题 目录 1. 数据库服务器的优化步骤 2. 查看系统性能参数 2.1 SHOW STATUS LIKE \\\'参数\\\' 2.2 查看SQL的查询成本 3. 定位执行慢的 SQL:慢查询日志 3.0 介绍 

    2024年02月02日
    浏览(40)
  • MySQL性能分析1——查看频次

    查看当前数据库的INSERT,UPDATE,DELETE,SELECT的访问频次,得到当前数据库是以插入,更新和删除为主还是以查询为主,如果是以插入,更新和删除为主的话,那么优化比重可以轻一点儿。 语法:   可以看到当前执行主要是由查询构成的

    2024年02月19日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包