转自https://my.oschina.net/wuweixiang/blog/2987434

首先得配置my.cnf:

#====================================================================================================================#
#================================================== 慢日志 ===========================================================#
#====================================================================================================================#
#是否启用慢查询
slow_query_log = on
#日志位置 - > 注意 目标文件夹权限, 需要 MySQL 的所有者可写; 否则会强制不启用
slow_query_log_file = /var/lib/mysql/mysql-slow.log
#添加此项即打开未添加索引的所有日志到慢日志中, 可不打开
log_queries_not_using_indexes = on
#小于此值1s会记录到慢日志 . 默认为 10s,可根据自己实际情况进行设置
long_query_time = 1

具体的使法如下:

root@mysql:/# mysqldumpslow -s c -t 40 /var/lib/mysql/mysql-slow.log

出来的结果是访问次数最多的40个sql,几个参数大概意思如下:

-t 显示多少条
-s 排序,默认是at。c是次数,t是时间,l是lock时间,r是返回结果。如果是ac,at,al,ar则是倒序
-g 可以用正则匹配部分语句

可以参考mysqldumpslow –help,通过这个工具可以看到哪些锁表,或者其他性能问题,还能看到某些SQL_NO_CACHE提示呢,去想办法优化把!

root@mysql:/# mysqldumpslow --help
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:LANGUAGE = (unset),LC_ALL = (unset),LANG = "en_US.UTF-8"are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
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 (al, at, ar, c, l, r, t), 'at' is defaultal: average lock timear: average rows sentat: average query timec: countl: lock timer: rows sentt: query time  -r           reverse the sort order (largest last instead of first)-t NUM       just show the top n queries-a           don't abstract all numbers to N and strings to 'S'-n NUM       abstract numbers with at least n digits within names-g PATTERN   grep: only consider stmts that include this string-h HOSTNAME  hostname of db server for *-slow.log filename (can be wildcard),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

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

-s, 是表示按照何种方式排序,

c: 访问计数

l: 锁定时间

r: 返回记录

t: 查询时间

al:平均锁定时间

ar:平均返回记录数

at:平均查询时间

-t, 是top n的意思,即为返回前面多少条的数据;

-g, 后边可以写一个正则匹配模式,大小写不敏感的;

比如

得到返回记录集最多的10个SQL。

mysqldumpslow -s r -t 10 /database/mysql/mysql06_slow.log

得到访问次数最多的10个SQL

mysqldumpslow -s c -t 10 /database/mysql/mysql06_slow.log

得到按照时间排序的前10条里面含有左连接的查询语句。

mysqldumpslow -s t -t 10 -g “left join” /database/mysql/mysql06_slow.log

另外建议在使用这些命令时结合 | 和more 使用 ,否则有可能出现刷屏的情况。

mysqldumpslow -s r -t 20 /mysqldata/mysql/mysql06-slow.log | more

转载于:https://www.cnblogs.com/heroinss/p/10912140.html

mysql之慢日志查询相关推荐

  1. MySQL.分页 慢日志查询

    limit分页 select * from table_name limit 0,5  或者  select * from table_name limit 5 #取前5条数据 select * fr ...

  2. MySQL 数据库管理之 --- 日志查询

    文章目录 前言 一.日志 1.mysql的日志类型 1.1 错误日志 1.2 通用查询日志 1.3 二进制日志(binlog) 1.4 中继日志 1.5 慢查询日志 配置 2.查看日志 2.1 查看错 ...

  3. mysql宕机日志查询_Mysql容器异常宕机

    腾讯云,配置1核2G,MySql服务在使用时没有任何征兆突然无响应,通过查询docker容器状态,发现mysql容器宕机了... 问题定位: 进入容器内,查询mysql的日志,没有发现异常问题(有些错 ...

  4. 如何修改:wq!无效时linux的readonly 标记的文档-修改liunx下mysql的慢日志查询开关。

    今天在linux系统玩mysql,在学习性能分析,配置慢查询日志的时候需要修改 etc/my.cnf中的这两个东西 #慢查询日志 slow_query_log=1 long_query_time=2 ...

  5. mysql宕机日志查询_mysql宕机分析(事务日志损坏)

    mysql宕机分析(事务日志损坏) 一.情景概述. 1.服务器配置 a)  1CPU 8核 b)  16G内存 c)  2T 硬盘 2. Mysql 在一个普通硬盘中长时间处于大量写的状态(长时间大概 ...

  6. mysql 慢查询_mysql如何捕捉慢日志查询

    慢日志查询日志 查询超过变量 long_query_time指定时间值的为慢查询,但是查询获取锁(包括锁等待)的时间不计入查询时间内,mysql 记录慢查询日志是在查询执行完毕且已经完全释放锁之后才记 ...

  7. MySQL高级 - 日志 - 查询日志

    查询日志 查询日志中记录了客户端的所有操作语句,而二进制日志不包含查询数据的SQL语句. 默认情况下, 查询日志是未开启的.如果需要开启查询日志,可以设置以下配置 : #该选项用来开启查询日志 , 可 ...

  8. Mysql(三) Mysq慢查询日志

    Mysql Slow Query Log MYSQL慢查询日志是用来记录执行时间超过指定时间的查询语句.通过慢查询日志,可以查找出哪些查询语句的执行效率很低,以便进行优化.一般建议开启,它对服务器性能 ...

  9. mysql慢日志查询的阈值_mysql慢日志查询

    慢日志查询作用 慢日志查询的主要功能就是,记录sql语句中超过设定的时间阈值的查询语句.例如,一条查询sql语句,我们设置的阈值为1s,当这条查询语句的执行时间超过了1s,则将被写入到慢查询配置的日志 ...

最新文章

  1. Python基础-----条件语句与初识基本数据类型(一)
  2. 8086 寻址方式_8086微处理器的不同寻址模式
  3. hdu 1231 最大连续子序列 ,1003 Max Sum;
  4. Android-消息机制总结
  5. 配置 IIS 7 显示详细错误信息
  6. 下载CentOS镜像
  7. IDEA的常用配置一键导入及优化内存
  8. Apache Kafka + Spark Streaming Integration
  9. android 高德amap开发一(地图创建)
  10. 梁勇:展望 2017年商业智能BI 发展的趋势
  11. mysql导入存储过程报错_mysql导入存储过程时declare报错的有关问题解决
  12. linux怎么进入windows系统安装目录下,windows下Linux子系统的安装配置
  13. Java打印9*9乘法表
  14. 电力系统稳态matlab,基于MATLAB的电力系统稳态仿真分析
  15. 共同创业五年,技术总监却突然就这么离职了
  16. SpringBoot实现微信扫码登录功能让网站支持使用微信登录demo
  17. 红孩儿编辑器的模块设计6
  18. baidumap vue 判断范围_vue--百度地图点覆盖和区域划分
  19. 点云语义分割:pointnet++训练S3DIS数据集
  20. wangeditor富文本编辑器使用过程中遇到的问题以及解决办法

热门文章

  1. delphi中的指针与C类似
  2. setTimeout() 方法的返回值
  3. javascript动态创建可拖动、最大化、最小化的层
  4. 括号,逻辑与,逻辑或--运算符重载
  5. 拆解 Linux 网络包发送过程
  6. 任务切换的方法——《x86汇编语言:从实模式到保护模式》读书笔记37
  7. Python数据收集及分析学习相关
  8. 抽象类调用自己的抽象方法,实现来自子类
  9. 【动态规划】三种基本背包问题
  10. 基于内存数据库的分布式数据库架构