我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL慢日志查询实例分析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL慢日志查询实例分析

本篇内容介绍了“MySQL慢日志查询实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

MySQL慢日志查询实例分析

一、慢查询日志概念

对于SQL和索引的优化问题,我们会使用explain去分析SQL语句。但是真正的企业级项目有成千上万条SQL,我们不可能从头开始一条一条explain去分析。我们从什么地方可以获取那些运行时间长,耗性能的SQL??

我们可以打开慢查询日志

根据具体的业务和并发量来预估一个时间上限(20ms、100ms),设置好后开启业务,压测后打开慢查询日志,就会看到超过执行时间的SQL,然后使用explain分析这些耗时的SQL语句

步骤如下:

  • 打开慢查询日志开关slow_query_log

  • 设置合理的、业务可以接受的慢查询时间上限

  • 压测执行各种业务

  • 查看慢查询日志,找出所有执行耗时的SQL语句

  • 用explain分析这些耗时的SQL语句,从而针对性优化

MySQL可以设置慢查询日志,当SQL执行的时间超过我们设定的时间,那么这些SQL就会被记录在慢查询日志当中,然后我们通过查看日志,用explain分析这些SQL的执行计划,来判定为什么效率低下,是没有使用到索引?还是索引本身创建的有问题?或者是索引使用到了,但是由于表的数据量太大,花费的时间就是很长,那么此时我们可以把表分成多个小表等。

慢查询日志相关的参数如下所示:
(MySQL定义的很多的全局的开关,都是在全局变量中存储,可以用show/set variables查看或者设置全局变量的值)

MySQL慢日志查询实例分析
慢查询日志开关默认是关闭的
慢查询日志的路径:默认在/var/lib/mysql/

慢查询日志记录了包含所有执行时间超过参数 long_query_time(单位:秒)所设置值的 SQL语句的日志,在MySQL上用命令可以查看,如下:

MySQL慢日志查询实例分析
这个值是可以修改的:

MySQL慢日志查询实例分析

二、慢查询日志实践

1. 打开慢查询日志开关slow_query_log

MySQL慢日志查询实例分析

在打开慢查询日志开关的时候,报错表示slow_query_log是一个global的变量(也有只影响当前session的变量,如:long_query_time 、profiling),修改后会影响所有的session,即影响所有正在访问当前MySQL server的客户端。
MySQL慢日志查询实例分析

打开慢查询日志开关成功!

2. 设置合理的、业务可以接受的慢查询时间上限long_query_time

MySQL慢日志查询实例分析
查看另一个session

MySQL慢日志查询实例分析
发现还是默认的10s,故long_query_time只影响当前session

3. 压测执行各种业务

MySQL慢日志查询实例分析
已经超过我们设置的long_query_time=0.1s

4. 查看慢查询日志

路径:/var/lib/mysql/
MySQL慢日志查询实例分析
MySQL慢日志查询实例分析

5. 用explain分析这些耗时的SQL语句,从而针对性优化

MySQL慢日志查询实例分析
做了整表的搜索,把主键索引树整个扫了一遍。

我们应该给password添加索引,然后记得password是字符串格式,因为如果涉及类型转换是用不了索引的

三、show profiles查看sql具体的运行时间

MySQL一般只显示小数点后两位的时间
MySQL慢日志查询实例分析
打开profiling开关,显示更详细的时间

MySQL慢日志查询实例分析
没有报错,说明profiling变量只影响当前session

MySQL慢日志查询实例分析

“MySQL慢日志查询实例分析”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL慢日志查询实例分析

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

下载Word文档

猜你喜欢

MySQL慢查询日志分析

MySQL慢查询日志是MySQL服务器用来记录慢查询操作的一种日志打开慢查询日志功能:在MySQL配置文件(例如:my.cnf或my.ini)中,添加以下配置选项:slow_query_log = "1"slow_query_log_
MySQL慢查询日志分析
2024-10-20

MySQL优化之慢查询日志实例分析

本篇内容主要讲解“MySQL优化之慢查询日志实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL优化之慢查询日志实例分析”吧!一、慢查询日志概念对于SQL和索引的优化问题,我们会使用
2023-07-02

Linux下MySQL的慢查询日志分析

MySQL的慢查询日志是记录MySQL执行时间超过指定阈值的查询语句的日志,在Linux下可以通过以下步骤来进行慢查询日志的分析:打开MySQL配置文件my.cnf,找到slow_query_log参数,将其设置为ON,并设置slow_qu
Linux下MySQL的慢查询日志分析
2024-08-16

Redis慢查询日志及慢查询分析详解

这篇文章主要为大家介绍了Redis慢查询日志及慢查询分析详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-01-28

MySQL 慢查询日志

简介MySQL 慢查询日志是排查问题 SQL 语句,以及检查当前 MySQL 性能的一个重要功能。查看是否开启慢查询功能:mysql> mysql> show variables like 'slow_query%';+--------------------
MySQL 慢查询日志
2022-04-20

MySQL的慢查询实例分析

这篇文章主要介绍“MySQL的慢查询实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL的慢查询实例分析”文章能帮助大家解决问题。1 概念MySQL的慢查询,全名是慢查询日志,是MySQ
2023-06-28

MySQL慢日志查询分析方法与工具

MySQL中的日志包括:错误日志、二进制日志、通用查询日志、慢查询日志等等。这里主要介绍下比较常用的两个功能:通用查询日志和慢查询日志。 1)通用查询日志:记录建立的客户端连接和执行的语句。 2)慢查询日志:记录所有执行时间超过long_query_time秒
MySQL慢日志查询分析方法与工具
2017-05-29

Mysql 开启慢日志查询及查看慢日志 sql

本文为博主原创,转载请注明出处:目录:   1.Mysql 开启慢日志配置的查询   2. 通过sql 设置Mysql 的慢日志开启   3. 通过慢 sql 日志文件查看慢 sql  1.Mysql 开启慢日志配置的查询mysql> show variabl
Mysql 开启慢日志查询及查看慢日志 sql
2017-01-10

MySQL错误日志与通用查询实例分析

这篇文章主要介绍“MySQL错误日志与通用查询实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL错误日志与通用查询实例分析”文章能帮助大家解决问题。MySQL日志文件系统的组成 a
2023-06-29

MySQL 慢查询日志工具

mysqldumpslow 工具MySQL安装目录下bin 文件 mysqldumpslow.pl文件启动perl mysqldumpslow.pl -s t -t 5 c:datadata-slow.log-s order(c,t,r,l,at,al,ar)
MySQL 慢查询日志工具
2016-10-14

编程热搜

目录