内容简介:今天客户那边遇到一个问题:多选文件进行操作,数据量一大后台处理就特别慢,浏览器显示504超时。为了验证问题是否出在sql语句,所以用以下方法来分析:下面会分别介绍三个方法的开启方法。general_log:日志记录功能是否开启,默认为OFF
今天客户那边遇到一个问题:多选文件进行操作,数据量一大后台处理就特别慢,浏览器显示504超时。为了验证问题是否出在 sql 语句,所以用以下方法来分析:
- 查询SQL执行记录
- explain 分析
- MySQL 语句执行时间
下面会分别介绍三个方法的开启方法。
查询SQL执行记录
查询日志功能是否开启
show variables LIKE 'general%'; 复制代码
general_log:日志记录功能是否开启,默认为OFF
general_log_file:日志存放路径
开启日志功能
set GLOBAL general_log = 'ON'; 复制代码
然后再次
在指定路径查看SQL记录
explain 分析
大部分的性能分析都需要使用到该命令,可以用来查看SQL语句的执行效果,可以帮助选择更好地索引和优化语句。
语法
explain + SQL语句
输出:
参数解析
id | SELECT识别符。这是SELECT的查询序列号 |
select_type | SELECT类型,可以为以下任何一种:
|
table | 输出的行所引用的表 |
type | 联接类型。下面给出各种联接类型,按照从最佳类型到最坏类型进行排序:
|
possible_keys | 指出MySQL能使用哪个索引在该表中找到行 |
key | 显示MySQL实际决定使用的键(索引)。如果没有选择索引,键是NULL。 |
key_len | 显示MySQL决定使用的键长度。如果键是NULL,则长度为NULL。 |
ref | 显示使用哪个列或常数与key一起从表中选择行。 |
rows | 显示MySQL认为它执行查询时必须检查的行数。多行之间的数据相乘可以估算要处理的行数。 |
filtered | 显示了通过条件过滤出的行数的百分比估计值。 |
Extra | 该列包含MySQL解决查询的详细信息
|
MySQL 语句执行时间
show profile 以及show profiles语句可以显示当前会话过程中执行SQL语句的性能信息。
查看profile是否开启
show variables like '%profil%'; 复制代码
profiling:OFF 默认此功能关闭
设置开启状态
set profiling = 1; 复制代码
再次查看
已经是开启状态
执行sql语句后进行分析
执行完后,输入
show profiles; 复制代码
即可查看所有的sql的执行时间
show profile for query 1 复制代码
查看第1个sql语句的执行的各个操作的耗时详情。
show profile cpu, block io, memory,swaps,context switches,source for query 6; 复制代码
可以查看出一条SQL语句执行的各种资源消耗情况,比如CPU,IO等
show profile all for query 6 查看第6条语句的所有的执行信息。 复制代码
以上所述就是小编给大家介绍的《MySql语句执行分析》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- SQL语句执行顺序详解
- 一条SQL查询语句的执行过程
- 一条 SQL 查询语句是怎么执行的?
- 一条 SQL 查询语句是怎么执行的?
- 执行一条sql语句都经历了什么?
- MySQL 探秘(二):SQL 语句执行过程详解
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Probability and Computing
Michael Mitzenmacher、Eli Upfal / Cambridge University Press / 2005-01-31 / USD 66.00
Assuming only an elementary background in discrete mathematics, this textbook is an excellent introduction to the probabilistic techniques and paradigms used in the development of probabilistic algori......一起来看看 《Probability and Computing》 这本书的介绍吧!