MySQL慢查询基础

当感到sql查询过慢的时候,我们一般有两种查看方法

  • explain 执行计划,可以查看单条sql语句的具体执行过程
  • 开启mysql的慢查询日志功能 下面,主要阐述的就是mysql的慢查询启用和分析方法 (mysql version is 5.6)

开启慢查询

开启慢查询分为两种方法 查询状态 show variables like '%slow_query_log%; 慢查询状态

  1. 临时启用,直接使用sql 配置 set global slow_query_log=1; slow_query_log_file是默认的慢查询存储的位置,可以更改 开启之后
  2. 用就启用,在my.cnf文件中配置,有则改,无则添加配置项
  slow_query_log =1
  slow_query_log_file=/var/log/mysql/mysql_slow_query.log

筛选较慢的sql语句

mysql 有个配置项叫long_query_time 可以精确到微秒,通过设置其值,我们可以定义超过多长时间为慢,默认为10s. 可以使用show variables like '%long_query_time%;来查看其值

默认值

设置 long_query_time的值

set global long_query_time=4; 使用show global variables like 'long_query_time' 来查看设置之后的状态 改变之后

使用

使用之前,先重新链接一次, 使用select sleep(5); 测试 查看日志

  1. 可以直接查看日志文件 sudo less /var/lib/mysql/winlans-PC-slow.log
  2. 使用mysql慢日志分析工具 sudo mysqldumpslow,输出如图 慢查询分析结果 好像差不多了,如果有什么不足,后续慢慢补吧