内容简介:今天客户那边遇到一个问题:多选文件进行操作,数据量一大后台处理就特别慢,浏览器显示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 语句执行过程详解
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Java和Android开发学习指南(第二版)
Budi Kurniawan / 李强 / 人民邮电出版社 / 2016-3 / 69.00元
本书是Java语言学习指南,特别针对使用Java进行Android应用程序开发展开了详细介绍。 全书共50章,分为两大部分。第1部分(第1章到第22章)主要介绍Java语言基础知识及其功能特性。第2部分(第23章到第50章)主要介绍如何有效地构建Android应用程序。 本书适合任何想要学习Java语言的读者阅读,特别适合想要成为Android应用程序开发人员的读者学习参考。一起来看看 《Java和Android开发学习指南(第二版)》 这本书的介绍吧!