MySQL调优系列:慢查询记录

MySQL慢查询记录

[提前声明]
文章由作者:张耀峰 结合自己生产中的使用经验整理,最终形成简单易懂的文章
写作不易,转载请注明,谢谢!
spark代码案例地址: https://github.com/Mydreamandreality/sparkResearch


MySQL慢查询记录

  • 慢查询日志是将mysql服务器中影响数据库性能的相关SQL语句记录到日志文件,通过对这些特殊的SQL语句分析,改进以达到提高数据库性能的目的

查询是否开启慢查询

show variables like 'slow_query_log%';

在这里插入图片描述

  • 参数说明:
    • slow_query_log 慢查询开启状态 OFF 未开启 ON 为开启
    • slow_query_log_file 慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录)

查看慢查询超时时间

show variables like 'long%';

在这里插入图片描述

  • long_query_time 查询超过多少秒才记录
    • 默认10秒

临时开启慢查询记录

  • 优点:不需要重启数据库
  • 缺点:Mysql重启后慢查询记录失效
  • 默认情况下slow_query_log的值为OFF,表示慢查询日志是禁用的,可以通过设置slow_query_log的值来开启,是否开启慢查询日志:1表示开启,0表示关闭。
  • 开启:set global slow_query_log=1;
  • 修改慢超时时间:set global long_query_time=4;

永久开启慢查询记录

  • 修改my.cnf
slow_query_log =1 
slow_query_log_file=/application/mysql/data/localhost-slow.log 
long_query_time = 1
  • 参数说明:
    • slow_query_log 慢查询开启状态
    • slow_query_log_file 慢查询日志存放的位置
    • long_query_time 查询超过多少秒才记录 默认10秒 修改为1秒
      修改完需要重启Mysql服务

未使用索引的查询也记录到慢查询中

show variables like 'log_queries_not_using_indexes';

在这里插入图片描述

查询全部慢查询数量

show global status like '%Slow_queries%';

在这里插入图片描述

查看文件中记录的慢SQL

  • SELECT SLEEP(15)
  • 使用以上命令创造一条慢SQL
    在这里插入图片描述
  • 查看慢SQL的文件记录位置:show variables like ‘slow_query_log%’;
    在这里插入图片描述
  • 可以看到慢SQL已经被记录了下来,包括SQL的执行时长,执行时间,上锁时间等等信息,这样我们就可以拿这条SQL去分析优化了
  • 后续章节介绍下如何对SQL进行性能分析和优化
  • 有任何问题可以留言交流!
发布了55 篇原创文章 · 获赞 329 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/youbitch1/article/details/104268434