慢查询分析调优工具~mysqldumpslow
在日常的业务开发中,MySQL 出现慢查询是很常见的,要么说明你家产品的增长性很好,要么就是你的 SQL 写的太烂了。所以对慢查询 SQL 进行分析和优化很重要,其中 mysqldumpslow 是 MySQL 服务自带的一款很好的分析调优工具。
MySQL 慢查询日志
MySQL提供的一种慢查询日志记录,用来记录在MySQL查询中响应时间超过阀值的记录
具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中
查看慢查询设置情况
show variables like '%slow_query_log%';
* slow_query_log //是否开启,默认关闭,建议调优时才开启
* slow_query_log_file //慢查询日志存放目录
如何开启慢查询日志记录
3.1 命令开启
set global slow_query_log =1; //只对当前会话生效,重启失效
3.2 配置文件开启
vim my.cnf
在[mysqld]下添加:
slow_query_log = 1
slow_query_log_file = /var/lib/mysql/zdj-slow.log
重启MySQL服务
哪些 SQL 会记录到慢查询日志
show variables like 'long_query_time%';//查看阀值(大于),默认10s
如何设置查询阀值
4.1 命令设置
set global long_query_time = 3 //设置慢查询阀值
备注:
另外开一个session或重新连接 才会看到变化
4.2 配置文件设置
vim my.cnf
在[mysqld]下添加:
long_query_time = 3
log_output = FILE
重启MySQL服务
如何把未使用索引的 SQL 记录写入慢查询日志
show variables like 'log_queries_not_using_indexes'; //查看设置,默认关闭
set global log_queries_not_using_indexes = on; //设置
模拟数据
select sleep(4);//睡眠4s再执行
show global status like '%Slow_queries%';//查看慢查询条数
日志分析工具:mysqldumpslow
mysqldumpslow [ OPTS... ] [ LOGS... ] //命令行格式
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 (al, at, ar, c, l, r, t), 'at' is default
al: average lock time
ar: average rows sent
at: average query time
c: count
l: lock time
r: rows sent
t: 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
-s 表示按照何种方式排序
c 访问次数
l 锁定时间
r 返回记录
t 查询时间
al 平均锁定时间
ar 平均返回记录数
at 平均查询时间
-t 返回前面多少条数据
-g 后边搭配一个正则匹配模式,大小写不敏感
几个常用命令
得到返回记录集最多的10条SQL:
mysqldumpslow -s r -t 10 /var/lib/mysql/695f5026f0f6-slow.log
得到访问次数最多的10条SQL:
mysqldumpslow -s r -t 10 /var/lib/mysql/695f5026f0f6-slow.log
得到按照时间排序的前10条里面含有左连接的SQL:
mysqldumpslow -s t -t 10 -g "left join" /var/lib/mysql/695f5026f0f6-slow.log
也支持管道符命令
mysqldumpslow -s t -t 10 -g "left join" /var/lib/mysql/695f5026f0f6-slow.log | more //分页显示
慢查询日志记录内容
cat /var/lib/mysql/695f5026f0f6-slow.log //查看慢查询日志
-- 执行SQL时间
# Time: 2019-12-31T05:54:23.893042Z
-- 执行SQL的主机信息
# User@Host: root[root] @ localhost [] Id: 40
-- SQL的执行信息
# Query_time: 4.013664 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 1
-- SQL执行时间
SET timestamp=1577771659;
-- SQL内容
select sleep(4);
再结合 explain 关键字进一步分析优化
————————————————
原文作者:zhangdeTalk
转自链接:https://learnku.com/articles/39009
版权声明:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请保留以上作者信息和原文链接。
慢查询分析调优工具~mysqldumpslow的更多相关文章
- mysql性能瓶颈分析、性能指标、指标搜集方法与性能分析调优工具
本文主要讲解mysql的性能瓶颈分析.性能指标.性能指标信息的搜集工具与方法.分析调优工具的使用. 文章尚未完成. 性能瓶颈: 慢.写速度比读速度慢很多 主要的性能指标: 访问频度, 并发连接量, ...
- Linux性能分析调优工具介绍
1.常用性能分析工具 1)CPU性能分析工具 vmstat ps sar time strace pstree top 2)Memory性能分析工具 vmstat strace top ipcs ip ...
- 18.jvm调优工具及案例分析
目标: Jmap.Jstack.Jinfo详解 JvisualVm调优工具实战 JVM内存或CPU飙高如何定位 JState命令预估JVM运行情况 系统频繁Full GC导致系统卡顿实战调优 内存泄漏 ...
- Oracle第二话之调优工具
Oracle第二话之调优工具 原创if 0 = -I can 发布于2019-04-09 19:53:12 阅读数 172 收藏 展开 目录 1.告警日志 2.用户进程trace文件 3.动态性能视 ...
- JVM性能调优(4) —— 性能调优工具
前序文章: JVM性能调优(1) -- JVM内存模型和类加载运行机制 JVM性能调优(2) -- 垃圾回收器和回收策略 JVM性能调优(3) -- 内存分配和垃圾回收调优 一.JDK工具 先来看看有 ...
- JVM调优工具锦囊
Arthas线上 分析诊断调优工具 以前我们要排查线上问题,通常使用的是jdk自带的调优工具和命令.最常见的就是dump线上日志,然后下载到本地,导入到jvisualvm工具中.这样操作有诸多不变,现 ...
- java性能调优工具
windows调优工具: 任务管理器(ctrl+alt+delete或).资源管理器(任务管理器->性能进入或运行resmon.exe):JVM分析工具Jconsole,jProfile,Vis ...
- Android系统性能调优工具介绍
http://blog.csdn.net/innost/article/details/9008691 经作者授权,发表Tieto某青年牛的一篇<程序员>大作. Android系统性能调优 ...
- 【Java/Android性能优2】Android性能调优工具TraceView介绍
本文参考:http://www.trinea.cn/android/android-traceview/ Android自带的TraceView堪比java的性能调优工具visualvm线程视图,可以 ...
- jvm系列(七):jvm调优-工具篇
16年的时候花了一些时间整理了一些关于jvm的介绍文章,到现在回顾起来还是一些还没有补充全面,其中就包括如何利用工具来监控调优前后的性能变化.工具做为图形化界面来展示更能直观的发现问题,另一方面一些耗 ...
随机推荐
- 基于 Spread,在 Blazor 框架中导入 / 导出 Excel
引言 在现代 Web 应用开发中,处理 Excel 文件的导入和导出是一项常见且重要的需求.Blazor 框架是微软推出的用于构建具有 .NET 强大功能的交互式客户端 Web UI 的相对较新的框架 ...
- 字典树Trie详解
哈喽大家好,我是 doooge ,今天给大家带来 Trie 的详解. \[\Huge \texttt{字典树 Trie 详解} \] 1.Trie是什么? Trie 也叫字典树,前缀树,其本质就是一棵 ...
- 对称分组加密—DES算法原理
目录 一些基础概念 时序图 步骤拆分 Reference 本文只关注一个核心任务 -- 如何把 64 位的明文,用 64 位的密钥,加密成 64 位的密文,并执行解密,需要理解这个过程. DES已经很 ...
- MCP Server 之旅第 7 站:助力 MCP 打破“黑盒困境”
背景 在分布式系统中,请求链路追踪(Trace) 是诊断性能瓶颈.定位故障的核心能力.近期,阿里云函数计算的 Tracing 能力由 2.0 的 Jeager 升级为 OpenTelemetry 标准 ...
- 4G DTU
4G DTU是一种可以将RS232/485采集的数据通过3G/4G发送到云端服务器进行数据交互的传输设备.实现串口设备的无线长距离数据传输,进而实现远程数据通信管理,主要应用在远程数据采集和远程控制项 ...
- Oracle并发控制
并发与锁定 当多用户同一时刻访问相同的数据库资源时,将产生并发.并发极易破坏数据的一致性.锁定是处理并发的重要手段,用户在修改某一资源前,必须首先获得资源的修改权.而这种修改权具有排他性. 并发与锁定 ...
- sql更新数据
插入数据-insert 单条插入 insert into 表名 (列1,列2...)values(值1,值2...) 批量插入 insert into c_student(student_id,stu ...
- 03数字ic综合文件内部对象
数字IC综合中的内部对象深度解析 目录 1. 概述 ️ 2. 设计对象体系结构 3. 核心对象详解 4. 对象获取与操作 5. 高级对象操作技巧 6. 实战应用案例 7. 最佳实践与注意事项 1. 概 ...
- 前端开发系列083-Node篇之http
本文对Node的内置模块http进行介绍,包括该模块的基本情况和简单使用. 一.模块简介 http是Node的内置核心模块,包含了对HTTP处理的封装. 在Nodejs文件中可以直接在代码里通过var ...
- 关于MongoDB查找一段时间内的数据
things相当于一个已经创建好的表 命令: db.things.find({"createTime":{"$gt":"2015-5-21 0:0:0 ...