慢查询 - 图1
慢查询 - 图2

查看慢查询sql

  1. show variables like '%slow_query_log%';

慢查询 - 图3

开启 慢查询

  1. set global slow_query_log = 1;
  2. 使用set global slow_query_log = 1 开启了慢查询日志只对当前数据库生效,
  3. 如果Mysql重启则会失效
  4. -----------------------------------
  5. 如果需要永久生效,就必须修改配置文件my.cnf (其他系统变量也是如此)
  6. 修改my.cof文件,[mysqld]下增加或修改参数
  7. slow_query_log slow_query_log_file后,然后重启Mysql服务器,也即将如下两行配置my.cnf文件
  8. slow_query_log = 1;
  9. slow_query_log_file = /var/lib/mysql/xxxx-slow.log

那么开启了慢查询后,什么样的sql才会记录到慢查询日志里面?

慢查询 - 图4


查看当前多少秒慢

  1. show variables like 'long_query_time%';

设置慢的阀值时间

  1. show global long_query_time = 3;
  2. 为什么设置后看不出变化?
  3. 需要重新连接或新开一个会话才能看到修改值
  4. show variables like 'long_query_time%';
  5. show global variables like 'long_query_time';

在生产环境中,如果要手工分析日志,查找,分析sql,显然是个体力活,Mysql 提供了日志分析工具

【mysqldumpslow】 登入mysql后输入 mysqldumpslow — help

慢查询 - 图5

慢查询 - 图6