MySQL Query时间都去哪儿了

数据库 MySQL
MySQL作为被广泛应用的关系型数据库,帮助大家完成数据存储、数据处理以及数据分析等相关工作。在使用MySQL过程中最常遇到的问题大约就是慢查询或者运算时间很长的问题,那么时间都去哪儿了呢?

MySQL作为被广泛应用的关系型数据库,帮助大家完成数据存储、数据处理以及数据分析等相关工作。在使用MySQL过程中最常遇到的问题大约就是慢查询或者运算时间很长的问题,那么时间都去哪儿了呢?

使用SHOW PROFILE

MySQL提供的 SHOW PROFILE语法 ,可以帮助我们分析查询执行的每个步骤极其花费的时间。我们可以通过执行 set profiling=1 来开启此功能。先让我们看个例子

 

  1. select count(*) from user
  2. show profile; 

 

MySQL Query时间都去哪儿了

通过show profile命令我们可以查看时间主要消耗在了Sending data阶段,Sending data状态描述的是读和处理SELECT涉及的行以及发送数据到客户端:

The thread is reading and processing rows for a SELECT statement, and sending data to the client. Because operations occurring during this state tend to perform large amounts of disk access (reads), it is often the longest-running state over the lifetime of a given query.

其他状态的解释请参考 手册 。通过分析查询每个步骤消耗的时间,我们可以有针对性的进行优化。让我们来查看另一个例子。

  1. select * from user order by email desc limit 1000, 10; 

 

MySQL Query时间都去哪儿了

  1. show profiles;  

 

 

 

MySQL Query时间都去哪儿了

  1. show profile for query 2; 

 

MySQL Query时间都去哪儿了

通过上边的例子,我们可以发现时间主要花到了排序上。

使用 EXPLAIN

我们可以使用EXPLAIN来获取关于查询执行计划的信息, EXPLAIN命令等价于DESCRIBE/DESC。EXPLAIN命令是查看查询优化器如何决定执行查询的主要方法。

MySQL Query时间都去哪儿了

EXPLAIN命令可以帮助我们查看查询我们的SQL语句可能用到的索引(possible_keys)以及影响的行数(rows),可以帮我们更好的定位慢的原因。每列值得具体解释请参考 手册 。此外EXPLAIN也可以看表结构。

目前MySQL提供的工具在分析查询性能定位上还是比较弱的,但是造成查询性能底下的原因还是比较明确的:就是访问的数据太多。那么通过调整索引结构、调整检索语句的条件以及重构查询等均能收到不错的优化效果。

通过上述两个工具我们基本上能够确定我们的SQL在干什么以及消耗了多少时间,也能够了解查询优化器为我们做的一些工作,更具它们为我们提供的信息,我们可以调整我的查询方式来提高我们的查询效率。

责任编辑:未丽燕 来源: Forevernull
相关推荐

2015-11-13 09:34:25

流量wifi运营商

2021-08-11 09:47:57

MySQL 数据InnoDB

2014-06-09 16:32:55

大数据大数据人才

2013-05-03 14:11:43

程序员

2020-06-11 18:06:03

电脑电路板元件

2015-11-10 10:57:18

流量不清零运营商

2019-10-08 15:08:28

人脸数据AI数据收集

2021-11-22 22:05:47

电脑回收站文件

2024-01-25 17:58:14

OpenAIAI科技公司

2014-03-26 10:13:07

2019-04-30 08:49:23

通信人才研发

2016-09-12 15:15:49

戴尔

2015-11-10 09:57:18

APP流量

2019-09-29 08:50:01

Python IT旅游

2015-12-08 10:38:32

软件经典

2015-06-03 10:22:31

程序员代码

2017-12-21 08:09:13

程序员技术学习

2019-03-25 07:14:57

程序员工程师职业

2017-08-24 13:10:09

IT

2014-03-31 10:40:32

移动互联网第一代创业
点赞
收藏

51CTO技术栈公众号