linux下开启mysql慢查询,分析查询语句

标签:mysql, mysqld, mysqldumpslow, slow query, 慢查询
一,为什么要开启这个查询呢?
数据库是很容易产生瓶颈的地方,现在Nosql大家讨论这么热,估计都被数据库搞郁闷了。mysql中最影响速度的就是那些查询非常慢的语句,这些慢的语句,可能是写的不够合理或者是大数据下多表的联合查询等等,所以我们要找出这些语句,分析原因,加以优化。这也是发这篇博文的原因
二,开启mysql的慢查询
方法1,用命令开启慢查询
查看复制打印?
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)
方法2,修改mysql的配置文件my.cnf
在[mysqld]里面加上以下内容
long_query_time = 2
log-slow-queries = /usr/local/mysql/mysql-slow.log
重起一下
/usr/local/mysql/libexec/mysqld restart
三,分析工具
分析工具干什么事的呢,其实就是把mysql-slow.log里面记录下来的数据,分析一下显示出来。其实自己写一个shell脚本也是可以把要的信息取出来的。我们来看一下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;
看到了,就是记录一下sql语句的执行情况,包括执行时间,锁定时间等,所以要不要分析工具看个人情况,分析工具很多,在这儿只说一下mysql自带的慢查询分析工具mysqldumpslow的使用方法。
查看复制打印?
[root@BlackGhost bin]# mysqldumpslow -h
Option h requires an argument
ERROR: bad option

Usage: 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的时间和返回的记录数来排序
-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所以机器名或者IP
default 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/nowindxdw/p/9100975.html

slowquery 慢查询相关推荐

  1. https 慢_dba+开源工具:可视化分析MongoDB慢查询日志

    工具研发者介绍 贺春旸,凡普金科爱钱进DBA团队负责人,<MySQL管理之道:性能调优.高可用与监控>第一.二版作者,曾任职于中国移动飞信.安卓机锋网.致力于MariaDB.MongoDB ...

  2. 数据结构与算法(C语言)

    第一章: 数据结构绪论 1.什么是程序:程序 = 数据结构 + 算法 2.逻辑结构&物理结构的区别用法 基本的目标就是将数据及其逻辑关系存储到计算机的内存中 一:逻辑结构: 逻辑结构是指数据对 ...

  3. mysql(slow-query) 快速开启慢日志查询的方法

    为什么80%的码农都做不了架构师?>>>    mysql有一个功能就是可以log下来运行的比较慢的sql语句,默认是没有这个log的 打开 my.ini ,找到 [mysql] 在 ...

  4. 天兔(Lepus)监控系统慢查询分析平台安装配置

    转http://suifu.blog.51cto.com/9167728/1770672 被监控端要安装pt工具 1 2 3 4 [root@HE1~]## yum -y install perl-I ...

  5. [mysql] mysql 5.6.X 慢查询日志

    慢查询日志 一篇好文章,学习保存.... 打开慢查询日志 慢查询日志,顾名思义就是记录执行比较慢查询的日志. 查看是否开启慢查询日志: show variables like '%slow%'; 打开 ...

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

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

  7. 怎样开启mysql慢检查_如何开启mysql的慢查询

    原文:http://www.cnblogs.com/zhangjing0502/archive/2012/07/30/2615570.html Linux查看mysql 安装路径 一.查看文件安装路径 ...

  8. MySQL 通用查询日志和慢查询日志分析

    MySQL中的日志包括:错误日志.二进制日志.通用查询日志.慢查询日志等等.这里主要介绍下比较常用的两个功能:通用查询日志和慢查询日志. 1)通用查询日志:记录建立的客户端连接和执行的语句. 2)慢查 ...

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

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

最新文章

  1. 百亿数据,毫秒级返回,如何构建?
  2. 逻辑回归的相关问题及java实现
  3. Java开发中Websocket的技术选型参考
  4. Python科学计算扩展库NumPy之np.array()与np.asarray()区别
  5. kaggle较好的竞赛经验
  6. Markdown编辑器攻略——字体,字号,颜色
  7. Java基础day10
  8. 【CodeForces - 675C】Money Transfers(思维,前缀和)
  9. 信息学奥赛一本通(2066:【例2.3】买图书)
  10. 更改数据库的兼容模式
  11. 云函数与函数式编程思想结合会产生什么?
  12. SAP License:SAP菜单修改
  13. python数码管应用到物流_使用Python,实现程序运行计时的数码管表示
  14. 07-0.部署 worker 节点
  15. 预训练模型的技术演进:乘风破浪的PTM
  16. Synergy——使用一套键鼠控制两台电脑(Ubuntu 和 Windows)
  17. JDK的环境变量配置(详细步骤)
  18. 机器人水库涵洞检测_一种水库大坝隧洞、涵洞多功能检测装置的制作方法
  19. learn python the hard way中文pdf_Learn Python 3 the Hard Way .pdf
  20. Chris Cheung

热门文章

  1. “玩转课堂”软件需求规格说明
  2. 洛谷1346 电车
  3. 【Leetcode】376. Wiggle Subsequence
  4. (最小生成树)Truck History --POJ -- 1789
  5. BZOJ 1009 [HNOI2008]GT考试
  6. 分布式缓存使用介绍MemCache
  7. 图像识别工程师 VS The application has requested the Runtime to terminate it in an unusual way.
  8. 通过Class来加载输入流和文件
  9. mysql show语句_mysql常用show语句
  10. mysql查询当前use的数据库