MySQL分析SQL耗时瓶颈_zxc123e的博客-CSDN博客_mysql分析sql


本站和网页 https://blog.csdn.net/zxc123e/article/details/77908432 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

MySQL分析SQL耗时瓶颈_zxc123e的博客-CSDN博客_mysql分析sql
MySQL分析SQL耗时瓶颈
zxc123e
于 2017-09-09 10:31:06 发布
18172
收藏
16
分类专栏:
数据库与sql
文章标签:
mysql
sql
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zxc123e/article/details/77908432
版权
数据库与sql
专栏收录该内容
10 篇文章
0 订阅
订阅专栏
慢日志查询
MySQL的慢日志查询是MySQL提供的一种日志记录,它用了记录在MySql中响应时间超过阈值的语句,具体运行时间超过long_query_time值的SQL,则会被记录到慢日志中。long_query_time的默认时间为10,意思是运行10以上的语句。
比如一条sql执行超过5秒钟,我们就算慢SQL,MySQL会记录超过5秒的sql,我们可以结合explain进行全面分析。
默认情况下,MySQL数据库没有开启慢查询日志,需要我们手动来设置这个参数。当然,如果不是调优需要,一般不建议启动该参数,因为慢日志会或多或少带来一定的性能影响。
是否开启以及设置
#查看是否开启
show variables like '%slow_query_log%';
#开启
set global slow_query_log = 1;
使用set global slow_query_log=1开启了慢查询日志只对当前数据库生效,如果MySQL重启后则会失效。如果要永久生效,就必须修改配置文件my.cnf。
注意设置慢查询阈值时间后,你可能看不到值发生了变化,即没有生效,这时需要重新连接或新开一个会话才能看到修改值。
show variables like '%long_query_time%'
或者不重开连接也可以使用下面的命令:
show variables like '%long_query_time%'
哪些sql会被慢日志记录,这是由参赛long_query_time控制,默认情况下long_query_time的值为10秒,命令:
show variables like '%long_query_time%';
假如运行时间正好等于long_query_time的情况,并不会被记录下来。也就是说,在mysql是判断大于long_query_time,而非大于等于。
可以用下面的语句做个测试
SELECT sleep(4)
如果你设置的long_query_time为3秒,那么这条语句就会被记录下来。
查看慢日志条数
show global status like '%slow_queries%'
 日志分析工具mysqldumpslow
在生产环境中,如果要手工分析日志,查找、分析SQL,显然是个体力活,MySql提供了日志分析工具mysqldumpslow。
例如:
#得到返回记录集最多的10个SQL
Mysqldumpslow –s r –t 10 D:\Program Files\mysql\data\DESKTOP-VN2D5OU-slow.log
#得到访问次数最多的10个SQL
Mysqldumpslow –s c –t 10 D:\Program Files\mysql\data\DESKTOP-VN2D5OU-slow.log
#得到按照时间排序的前10条里面含有左连接的查询
Mysqldumpslow –s t –t 10 –g “left join” D:\Program Files\mysql\data\DESKTOP-VN2D5OU-slow.log
#另外建议在使用这些命令时结合|和more使用,否则可能出现爆破情况
Mysqldumpslow –s r –t 10 D:\Program Files\mysql\data\DESKTOP-VN2D5OU-slow.log|more
参数含义
s: 表示按照何种方式排序
c:访问次数
l:锁定时间
r:返回记录
t:查询时间
al:平均锁定时间
t:返回前面多少条的数据
g:后面搭配一个正则表达式
用show profile进行sql分析
show profile命令可以分析当前会话中语句执行的资源消耗情况。用于查找SQL耗时瓶颈 。默认处于关闭状态,并保存最近15次的运行结果。
查看是否开启(show variables like ‘profiling’;) 开启功能(set profiling = on;)
开启之后就可以记录接下来sql的运行情况。之后通过show profiles来查看结果:
进一步通过命令(show profile cpu, block io for query 3;)分析某个SQL语句执行情况,例如下面分析3号SQL的情况。
Show profile后面的一些参数:
All:显示所有的开销信息Block io:显示块IO相关开销Context switches: 上下文切换相关开销Cpu:显示cpu相关开销Memory:显示内存相关开销Source:显示和source_function,source_file,source_line相关的开销信息
全局查询日志
(永远不要在生产环境开启,查看所有执行的SQL语句)
设置命令:
set global general_log = 1;
#以表的形式输出
set global log_output = ‘TABLE’
此后,mysql所执行的SQL语句将会记录到mysql.genearl_log表,可用下面的命令查看:
select * from mysql.general_log;
也可以在配置文件中配置,设置如下:
#开启
General_log = 1
#记录日志文件的路径
General_log_file = D://path/logfile
#输出格式
Log_output=file
zxc123e
关注
关注
点赞
16
收藏
打赏
评论
MySQL分析SQL耗时瓶颈
慢日志查询MySQL的慢日志查询是MySQL提供的一种日志记录,它用了记录在MySql中响应时间超过阈值的语句,具体运行时间超过long_query_time值的SQL,则会被记录到慢日志中。long_query_time的默认时间为10,意思是运行10以上的语句。比如一条sql执行超过5秒钟,我们就算慢SQL,MySQL会记录超过5秒的sql,我们可以结合explain进行全面分析。默认情况下,M
复制链接
扫一扫
专栏目录
mysql记录耗时的sql实例详解
12-15
mysql记录耗时的sql
mysql可以把耗时的sql或未使用索引的sql都记录在slow log里,供优化分析使用。
1.mysql慢查询日志启用:
mysql慢查询日志对于跟踪有问题的查询非常有用,可以分析出当前程序里有很耗费资源的sql语句,那如何打开mysql的慢查询日志记录呢?
mysql> show variables like 'log_slow_queries';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| log_slow_queries | O
Mysql性能瓶颈深度定位分析
smooth的博客
06-10
1万+
我们在性能测试过程中,经常会遇到Mysql出现性能瓶颈的情况,对于数据库来说,所谓的性能瓶颈无非是慢SQL、CPU高、IO高(有人会说内存高也算,说的对,比如发生比较严重的swap,由于我没遇到过,没有案例来说明),这次我就举这三方面的例子来进行性能分析:
首先我们要保证没有数据库配置方面的性能问题,毕竟在性能测试前,需要对基本配置撸一遍,避免犯低级错误。
一、慢SQL分析
首先业务系统慢,肯定是体现在响应时间上,所以在性能测试中,如果发现慢我们就从响应时间上进行拆分,如果拆到mysql,那就是分析慢
参与评论
您还未登录,请先
登录
后发表或查看评论
MY SQL命令大全
04-28
My SQL-命令大全,此文档是MY sql里面一些常用的命令
mysql query_time单位_深入mysql慢查询设置的详解
最新发布
大鹏
10-27
229
在web开发中,我们经常会写出一些SQL语句,一条糟糕的SQL语句可能让你的整个程序都非常慢,超过10秒一般用户就会选择关闭网页,如何优化 SQL语句将那些运行时间 比较长的SQL语句找出呢?(4)如果日志文件不想放在data目录,我们可以通过如下配置指定存放的目录及日志文件名:slow_query_log_file=file_name其中file_name就是你的存放日志的目录和文件名,在这里注意有的资料上可能是log-slow-queries=file_name,这个在mysql5.5版已经过时!
MySQL show profile指令分析SQL耗时
立志成为一个前端、后端、测试全方位发展的程序员
03-05
351
show profile指令分析SQL
Mysql从5.0.37版本开始增加了对 show profiles 和 show profile 语句的支持。show profiles 能够在做SQL优化时帮助我们了解时间都耗费到哪里去了
通过 have_profiling 参数,能够看到当前MySQL是否支持profile:
默认profiling是关闭的,0表示未开启,可以通过set语句在Session级别开启profiling:
set profiling=1; /*开启 profiling 开关*/
MySQL通过执行计划分析步骤耗时
A_captain_608的博客
04-08
901
MySQL通过执行计划分析步骤耗时
Mysql中如何查看Sql语句的执行时间(建议多准备点初始数据效果更佳)
程序员小王的博客
12-13
7783
Mysql中如何查看Sql语句的执行效率
关于Mysql Explain慢查询,你该知道的分析
weixin_38171468的博客
04-23
294
explain分析Explain 详解Explain字段详解(重点关注加粗项)select_type解读 (UNION:联合查询)table 解读type 解读possible_keys 解读Key 解读key_len 解读ref 解读rows 解读Extra 解读
Explain 详解
在日常工作中,我们会遇到sql语句查询速度特别慢,常常用到explain这个命令来查看一个这些SQL语...
MySQL进阶:sql性能分析
wang5701071的博客
04-02
7363
1:sql的执行次数分析:
sql: show global status like 'com_______'
解释:通过该命令可以查看当前数据库下的增删改查的使用次数,来采取对应的优化处理. value值就是执行的次数.
2:慢查询日志
sql: show variables like '%slow_query_log%';
慢查询日志会记录超出自己设置的时间还没有执行完毕的sql. 默认情况下,Mysql数据库并不启动慢查询日志,需要我们手动来设置这个参数,如果不是调优...
MySql-sql语句性能分析
wxd_1024的博客
12-11
8461
MySql Query Optimizer
1 Mysql中有专门负责优化SELECT语句的优化器模块,主要功能:通过计算分析系统中收集到的统计信息,为客户端请求的Query提供他认为最优的执行计划(他认为最优的数据检索方式,但不见得是DBA认为是最优的,这部分最耗费时间)
2 当客户端向MySQL 请求一条Query,命令解析器模块完成请求分类,区别出是 SEL...
mysql 慢sql分析_如何分析Mysql慢SQL
weixin_36256917的博客
01-19
268
内容摘要:开启慢查询日志捕获慢SQL使用explain分析慢SQL使用show profile查询SQL执行细节常见的SQL语句优化一、开启慢查询日志捕获慢SQL① 查询mysql是否开启慢日志捕获:SHOW VARIABLES LIKE '%slow_query_log%';如果还没开启的话,开启:SET GLOBAL slow_query_log=1;② 查看慢查询的时间阙值:SHOW GL...
mysql查询耗时操作_mysql记录耗时的sql实例详解
weixin_35264158的博客
01-20
1744
mysql记录耗时的sqlmysql可以把耗时的sql或未使用索引的sql都记录在slow log里,供优化分析使用。1.mysql慢查询日志启用:mysql慢查询日志对于跟踪有问题的查询非常有用,可以分析出当前程序里有很耗费资源的sql语句,那如何打开mysql的慢查询日志记录呢?mysql> show variables like 'log_slow_queries';+--------...
关于MySql数据库设计表与查询耗时分析
weixin_34087301的博客
03-17
156
本地建一张表persons,使用脚本插入了1000万条数据
下面比较几种查询方法的耗时(查询9000000到9000005这中间5条数据)
查询结果:
1:
SELECT * FROM test.persons limit 9000000,5;
2:
SELECT * FROM test.persons where Id_P between 900000...
MySQL性能瓶颈以及优化
eleven space
07-12
2359
原链接:https://www.toutiao.com/a6725727372672238094/
原来这样调优可以攻破MySQL性能瓶颈
来一杯82年的Java 2019-08-16 19:37:13
一、前言
MySQL调优对于很多程序员而言,都是一个非常棘手的问题,多数情况都是因为对数据库出现问题的情况和处理思路不清晰。在进行MySQL的优化之前必须要了解的就是MySQL的查询过程,很多的查询优化工作实际上就是遵循一些原则让MySQL的优化器能够按照预想的合理方式运行而已。
今天给大家讲解MySQL的
mysql 打开数据库耗时_「MySQL系列」分析Sql执行时间及查询执行计划(附数据库和一千万数据)...
weixin_32331345的博客
02-27
499
在查询sql执行时间,查看sql执行计划的时候。发现自己数据量太少,时间差距不明显。来来来,给你一千万条数据。一 准备数据2. 大批量数据导入数据a 将数据库导入服务器中(如果是windows系统,这步省略)b 创建一个数据库创建数据库(db2),表tb_skuc 命令行登录数据库mysql -u 用户名 -p 密码 ;d 切换到使用的数据库use db2;e 使用命令load data loca...
mysql的性能瓶颈_Mysql性能优化(一) - 性能检测与瓶颈分析
weixin_42303461的博客
01-18
617
Mysql性能优化(一) - 性能检测与瓶颈分析## 概述MySQL数据库是常见的两个瓶颈是CPU和I/O的瓶颈,CPU饱和一般发生在数据装入内存或从磁盘上读取数据时候。磁盘I/O瓶颈发生在装入数据远大于内存容量的时候,如果应用分布在网络上,那么查询量相当大的时候瓶颈就会出现在网络上,我们可以用mpstat, iostat, sar和vmstat来查看系统的性能状态。## 性能检测命令### sh...
查询mysql耗时最久的语句_Mysql开启慢查询记录耗时SQL语句
weixin_34381648的博客
01-25
1535
简述网站数据达到一定的数量级,就会有页面卡,出现50x等各种问题,mysql服务器CPU居高不下等症状。因为sql缓慢导致php缓慢,导致超时。这个时候应该先从mysql入手。就像看病一样,要先找病根,记录慢查询日志,就是观察期,观察到迹象我们就可以对症下药了。配置参数说明主要靠三个参数来配置,我们用通俗的话来解释。1、开关(不多说,关闭就不记录了)slow_query_log2、log存储位置(...
mysql查找效率慢的SQL语句
cmhi32813的博客
12-12
247
MySQL通过慢查询日志定位那些执行效率较低的SQL 语句,用--log-slow-queries[=file_name]选项启动时,mysqld 会写一个包含所有执行时间超过long_query_time 秒的SQL语句的...
MySQL EXPLAIN 执行计划分析
Tony_stark_L的博客
12-31
342
MySQL EXPLAIN 执行计划分析
MySQL性能瓶颈排查
lixinlin2nj的博客
08-03
255
sql性能优化
mysql 如何查看sql语句执行时间和效率
热门推荐
曲洋的博客
04-03
2万+
1 show profiles;
2 查看profiling 是否是on状态;
3 如果是off,则 set profiling = 1;
4 执行自己的sql语句;
5 show profiles;就可以查到sql语句的执行时间;
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022 CSDN
皮肤主题:编程工作室
设计师:CSDN官方博客
返回首页
zxc123e
CSDN认证博客专家
CSDN认证企业博客
码龄12年
暂无认证
199
原创
1万+
周排名
105万+
总排名
115万+
访问
等级
1万+
积分
390
粉丝
391
获赞
161
评论
1277
收藏
私信
关注
热门文章
SpringBoot之@EnableAutoConfiguration注解
174937
Sublime Text 3中使用SublimeGit插件
89328
android客户端与服务器端交互 如何保持session
54156
nodejs与mysql数据库的交互操作
39078
Spark基本架构及运行原理
27577
分类专栏
算法与数据结构
19篇
Java高并发
11篇
Android自定义View
10篇
数据结构与算法
19篇
java web
16篇
javascript
16篇
css
11篇
思想
4篇
html
6篇
Angular
2篇
资料
2篇
数据库与sql
10篇
redis
2篇
android
60篇
java
38篇
Spring
5篇
design pattern
10篇
C++
5篇
math
3篇
IDE
4篇
python
4篇
build tools
6篇
linux
4篇
webservice
4篇
junit
git
4篇
nodejs
6篇
uml
1篇
kotlin
9篇
tomcat
2篇
shiro
elasticsearch
3篇
docker
4篇
hadoop
1篇
Spark
7篇
Netty
2篇
message queue
1篇
最新评论
Spark基本架构及运行原理
solihawk:
RDD和DAG可以详细介绍一下
React Native官方入门教程
小萌新123:
牛逼,大佬
SpringBoot之@EnableAutoConfiguration注解
StrugleMarfer:
说了半天,到底是什么时候加载的starter 配置
Java并发包:AtomicBoolean和AtomicReference
打破砂锅问到底007:
aomic包下的原子变量还是蛮多的,文中提到的 AtomicBoolean和 AtomicRefernce,其实还有比如 常用的 AtomicInteger
利用EXPLAIN分析sql语句的性能
qq_34486822:
干货满满,看你的总结比看其他文档都实用太多
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
近期知识点一览
线程安全性与安全策略
RabbitMQ 重试机制和消息幂等性
2019年6篇
2018年26篇
2017年44篇
2016年58篇
2015年63篇
2014年44篇
2013年15篇
2012年2篇
2011年5篇
目录
目录
分类专栏
算法与数据结构
19篇
Java高并发
11篇
Android自定义View
10篇
数据结构与算法
19篇
java web
16篇
javascript
16篇
css
11篇
思想
4篇
html
6篇
Angular
2篇
资料
2篇
数据库与sql
10篇
redis
2篇
android
60篇
java
38篇
Spring
5篇
design pattern
10篇
C++
5篇
math
3篇
IDE
4篇
python
4篇
build tools
6篇
linux
4篇
webservice
4篇
junit
git
4篇
nodejs
6篇
uml
1篇
kotlin
9篇
tomcat
2篇
shiro
elasticsearch
3篇
docker
4篇
hadoop
1篇
Spark
7篇
Netty
2篇
message queue
1篇
目录
评论
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
打赏作者
zxc123e
你的鼓励将是我创作的最大动力
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值