性能优化还得靠MySQL慢查询日志

·  阅读 1603
性能优化还得靠MySQL慢查询日志

​「这是我参与2022首次更文挑战的第5天,活动详情查看:2022首次更文挑战

摘要:慢查询日志可以帮助 DBA 找出执行效率缓慢的SQL语句,为数据库优化提供帮助

🍁 1.概述

🐴 1.1 功能

MySQL 的慢查询日志是 MySQL 提供的一种日志记录,
它用来记录在 MySQL 中响应时间超过阀值的语句,
具体指 运行时间超过 e long_query_time 的 值的 SQL ,
则会被记录到慢查询日志中。
long_query_time 的默认值为 10,意思是运行 10S 以上的语句。
默认情况下,Mysql 数据库并不启动慢查询日志,
需要我们手动来设置这个参数,
当然,如果不是调优需要的话,一般不建议启动该参数,
因为开启慢查询日志会或多或少带来一定的性能影响。
慢查询日志支持将日志记录写入文件,也支持将日志记录写入数据库表。
复制代码

🐴 1.2 要点

当查询超过一定时间没有返回结果的时候,才会记录进慢查询日志。
• 慢查询日志可以帮助 DBA 找出执行效率缓慢的 SQL 语句,为数据库优化工作提供帮助。
• 慢查询日志默认是不开启的,建议开启慢查询日志。
• 当需要进行采样分析时手工开启。
复制代码

mysql> show variables like ‘%long_query_time%’;

image.png

🍁 2.慢查询日志使用

🐴 2.1 开启日志

关于慢查询日志,主要涉及到下面几个参数:
slow_query_log :是否开启慢查询日志功能(必填)
long_query_time :超过设定值,将被视作慢查询,并记录至慢查询日志文件中(必填)
log-slow-queries :慢查询日志文件(不可选),自动在 \data\ 创建一个 [hostname]-slow.log 文件
也就是说,只有满足以上三个条件,“慢查询功能”才可能正确开启或关闭。
复制代码

mysql> show variables like ‘%slow_%’;

image.png

mysql> set global slow_query_log=1;
mysql> show variables like ‘%slow_%’;

image.png

🐴 2.2 日志修改

修改慢查询时长及日志路径方法如下:
修改配置文件my.cnf,在[mysqld]下的下方加入
[mysqld]
slow_query_log = ON
slow_query_log_file = /usr/local/mysql/data/slow.log
long_query_time = 1
重启MySQL服务service mysqld restart即可
测试慢查询日志:
mysql> select sleep(4);
复制代码

⛳️ 3.分析工具

我们通过查看慢查询日志可以发现,很乱,数据量大的时候,
可能一天会产生几个G的日志,根本没有办法去清晰明了的分析。
所以,这里,我们采用MySQL自带的慢查询日志分析工具析日志 mysqldumpslow工具进行分析。

查看 mysqldumpslow 的帮助信息:mysqldumpslow --help
-s: 表示按何种方式排序:
  c: 访问次数
  l: 锁定时间
  r: 返回记录
  t: 查询时间
  al: 平均锁定时间
  ar: 平均返回记录数
  at: 平均查询时间
-t: 返回前面多少条的数据;
-g: 后边搭配一个正则匹配模式,大小写不敏感的。

常用命令
得到返回记录集最多的10个SQL:
mysqldumpslow -s r -t 10 /var/lib/mysql/show.log
得到访问次数最多的10个SQL:
mysqldumpslow -s c -t 10 /var/lig/mysql/show.log
得到按照时间排序的前10条里面含有左连接的查询语句:
mysqldumpslow -s t -t 10 -g “left join” /var/lig/mysql/show.log
另外建议在使用这些命令时结构 | 和more使用,否则有可能出现爆屏情况:
mysqldumpslow -s r -t 10 /var/lig/mysql/show.log | more
复制代码

相关推荐阅读: MySQL8.0新特性抢先看,性能又双叒提升了
MySQL武林秘籍,SQL学废必过考试
Linux7.6源码安装Mysql8
Oracle巡检脚本大全,服务器可直接部署
MySQL root密码忘记找回妙招
监控神器Zabbix,从部署到应用
Oracle监听日志清除

大家可以点赞、收藏、关注、评论我啦 、有数据库相关的问题随时联系我或交流哟~!

image.png

分类:
后端
标签:
收藏成功!
已添加到「」, 点击更改