相关博客: linux下开启mysql慢查询,分析查询语句

开启方法:

方法一:使用命令开启慢查询开启

mysql> show variables like "%long%";         //查看一下默认为慢查询的时间10秒
+-----------------+-----------+
| Variable_name   | Value     |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set (0.00 sec)mysql> set global long_query_time=2;          //设置成2秒,加上global,下次进mysql已然生效
Query OK, 0 rows affected (0.00 sec)mysql> show variables like "%slow%";          //查看一下慢查询是不是已经开启
+---------------------+---------------------------------+
| Variable_name       | Value                           |
+---------------------+---------------------------------+
| log_slow_queries    | OFF                             |
| slow_launch_time    | 2                               |
| slow_query_log      | OFF                             |
| slow_query_log_file | /usr/local/mysql/mysql-slow.log |
+---------------------+---------------------------------+
4 rows in set (0.00 sec)mysql> set slow_query_log='ON';                        //加上global,不然会报错的。
ERROR 1229 (HY000): Variable 'slow_query_log' is a GLOBAL variable and should be set with SET GLOBAL
mysql> set global slow_query_log='ON';            //启用慢查询
Query OK, 0 rows affected (0.28 sec)mysql> show variables like "%slow%";              //查看是否已经开启
+---------------------+---------------------------------+
| Variable_name       | Value                           |
+---------------------+---------------------------------+
| log_slow_queries    | ON                              |
| slow_launch_time    | 2                               |
| slow_query_log      | ON                              |
| slow_query_log_file | /usr/local/mysql/mysql-slow.log |
+---------------------+---------------------------------+
4 rows in set (0.00 sec)

方法二:修改mysql的配置文件my.cnf

在[mysqld]里面加上以下内容

long_query_time = 2
log-slow-queries = /usr/local/mysql/mysql-slow.log  

重起一下
/usr/local/mysql/libexec/mysqld restart

分析工具

通产使用mysql自带的分析工具mysqldumpslow来分析。

下面是 mysql-slow.log 日志中记录的内容:

[root@BlackGhost mysql]# cat mysql-slow.log     //查看命令
/usr/local/mysql/libexec/mysqld, Version: 5.1.26-rc-log (Source distribution). started with:
Tcp port: 3306  Unix socket: /tmp/mysql.sock
Time                 Id Command    Argument
# Time: 100814 13:28:30
# User@Host: root[root] @ localhost []
# Query_time: 10.096500  Lock_time: 0.045791 Rows_sent: 1  Rows_examined: 2374192
SET timestamp=1281763710;
select count(distinct ad_code) as x from ad_visit_history where ad_code in (select ad_code from ad_list where media_id=15);
# Time: 100814 13:37:02
# User@Host: root[root] @ localhost []
# Query_time: 10.394134  Lock_time: 0.000091 Rows_sent: 1  Rows_examined: 2374192
SET timestamp=1281764222;
select count(distinct ad_code) as x from ad_visit_history where ad_code in (select ad_code from ad_list where media_id=15);
# Time: 100814 13:37:16
# User@Host: root[root] @ localhost []
# Query_time: 4.608920  Lock_time: 0.000078 Rows_sent: 1  Rows_examined: 1260544
SET timestamp=1281764236;
select count(*) as cou  from ad_visit_history where ad_code in (select ad_code from ad_list where id=41) order by id desc;

mysqldumpslow的使用方法:

[root@BlackGhost bin]# mysqldumpslow -h
Option h requires an argument
ERROR: bad optionUsage: mysqldumpslow [ OPTS... ] [ LOGS... ]Parse and summarize the MySQL slow query log. Options are--verbose    verbose--debug      debug--help       write this text to standard output-v           verbose-d           debug          //查错-s ORDER     what to sort by (t, at, l, al, r, ar etc), 'at' is default     //排序方式query次数,时间,lock的时间和返回的记录数来排序        // 是表示按照何种方式排序,c、t、l、r分别是按照记录次数、时间、查询时间、返回的记录数来排序,ac、at、al、ar,表示相应的倒叙;-r           reverse the sort order (largest last instead of first)       //倒排序-t NUM       just show the top n queries                                       //显示前N多个-a           don't abstract all numbers to N and strings to 'S'-n NUM       abstract numbers with at least n digits within names   //抽象的数字,至 少有n位内的名称-g PATTERN   grep: only consider stmts that include this string      //配置模式 后边可以写一个正则匹配模式,大小写不敏感的;-h HOSTNAME  hostname of db server for *-slow.log filename (can be wildcard),     //mysql所以机器名或者IPdefault is '*', i.e. match all-i NAME      name of server instance (if using mysql.server startup script)-l           don't subtract lock time from total time           //总时间中不减去锁定时间// 例子
[root@BlackGhost bin]# ./mysqldumpslow -s r -t 20 /usr/local/mysql/mysql-slow.log
[root@BlackGhost bin]# ./mysqldumpslow -s r -t 20 -g 'count' /usr/local/mysql/mysql-slow.log

转载于:https://www.cnblogs.com/zjfazc/p/3229938.html

mysql 慢查询开启相关推荐

  1. mysql慢查询开启及分析方法

    最近服务维护的公司的DB服务器,总是会出现问题,感觉需要优化一下了,登陆上去,发现慢查询日志都没有开,真是惭愧, 故果断加上慢查询日志,经过分析sql记录,发现问题很多,开发人员很多没有对sql优化, ...

  2. windows下mysql慢查询开启的操作流程

    2019独角兽企业重金招聘Python工程师标准>>> 1.慢查询作用 慢查询可以帮助我们记录超过long_query_time的所有sql语句,有利于sql优化. 2.查看慢查询的 ...

  3. mysql慢查询开启语句分析_linux下开启mysql慢查询,分析查询语句

    mysql> show variables like "%long%"; //查看一下默认为慢查询的时间10秒 +-----------------+-----------+ ...

  4. mysql慢查询开启语句分析_mysql慢查询语句分析总结

    我们经常会接触到MySQL,也经常会遇到一些MySQL的性能问题.我们可以借助慢查询日志和explain命令初步分析出SQL语句存在的性能问题 通过SHOW FULL PROCESSLIST查看问题 ...

  5. Mysql优化_慢查询开启说明及Mysql慢查询分析工具mysqldumpslow用法讲解

    Mysql慢查询开启 Mysql的查询讯日志是Mysql提供的一种日志记录,它用来记录在Mysql中响应时间超过阈值的语句,具体指运行时间超过long_query_time值得SQL,则会被记录到慢查 ...

  6. mysql慢查询日志平时开启吗_MySQL开启慢查询日志功能的方法

    mysql慢查询日志对于跟踪有问题的查询非常有用,可以分析出当前程序里是否有很耗费资源的sql语句,这是一个有用的日志.它对于性能的影响不大(假设所有查询都很快),并且强调了那些最需要注意的查询(丢失 ...

  7. 开启Mysql慢查询来优化mysql

    开启Mysql慢查询来优化mysql 优化sql语句是优化数据库的一个很重要的方面,那么怎么发现那些耗时耗资源的sql语句呢,开启Mysql慢查询! 1.查看是否开启慢查询,默认情况下是关闭的.你的m ...

  8. MySQL慢查询(一) - 开启慢查询

    MySQL慢查询(一) - 开启慢查询 文章出自:https://www.cnblogs.com/luyucheng/p/6265594.html 一.简介 开启慢查询日志,可以让MySQL记录下查询 ...

  9. MySQL慢查询日志的配置与使用_MySQL 慢查询日志的开启与配置

    简介 MySQL 慢查询日志是排查问题 SQL 语句,以及检查当前 MySQL 性能的一个重要功能. 查看是否开启慢查询功能: mysql> show variables like 'slow_ ...

最新文章

  1. 笔记 - ES6 - 学前浅析
  2. 前沿|《细胞》:绕过眼睛植入幻觉,科学家成功在盲人脑海中呈现指定图像!...
  3. 中国批准AMD收购赛灵思!苏妈花350亿美元集齐CPU\GPU\FPGA三大芯片业务
  4. nodejs 面向对象 私有变量_Java准备校招之面向对象总结
  5. 的tree用法_linux命令tree用法
  6. 感受冬日和煦的春风。。。
  7. 使用Infinispan作为持久性解决方案
  8. P1059 [NOIP2006 普及组] 明明的随机数
  9. java 数据库连接不上_JAVA基础(六) 处理连接不上MYSQL数据库的方法
  10. tabpanel中autoload方法传递参数
  11. 机器学习与计算机视觉(FPGA的图像处理方法)
  12. 一文搞定移动端适配!
  13. 《疯狂Java讲义》(十八)---- JAR文件
  14. 系统分析师和系统架构设计师的主要区别是什么?
  15. PhalAPI学习笔记拓展篇 ——— 基于MySQL数据库交互题目
  16. 【ASP.NET Core分布式项目实战】(三)整理IdentityServer4 MVC授权、Consent功能实现...
  17. android 电话回音消除,android系统通话中回声消除的实现.pdf
  18. 在word2016中对图片插入题注
  19. 图像处理------图像加噪
  20. 项目经理应该如何提高团队执行力

热门文章

  1. Spring Cloud 学习笔记(三) 之服务治理模块Spring Cloud 服务发现与消费
  2. Uva1343-The Rotation Game-IDA*算法
  3. [随感]GIS开发的困惑
  4. Spring 的事务隔离级别和传播特性
  5. 向“3+1” SQLServer2008集群增加磁盘
  6. PAT1021. 个位数统计
  7. MySQL8安装,初始化,登录和修改密码
  8. centos 命令行执行多个命令_命令行如何执行jar包里面的方法
  9. python获取返回值_【Python】python获取线程的返回值
  10. 【Twitter】时序图神经网络