MySQL查询执行时间简单掌握(mysql查看执行时间)

MySQL查询执行时间是每个MySQL DBA都要关注的,了解查询程序执行时间可以协助开发者优化查询。本文将会简要介绍查询执行时间的一些概念,并介绍简单的查询执行时间相关的SQL查询和系统变量设置。

MySQL 查询的执行分为两个步骤:第一步,检查查询语句是否正确以及优化之后将查询语句转换成特定的执行计划,这一步称为 编译阶段;第二步,根据计划执行查询,这一步称为 执行阶段。编译与执行阶段的总耗时就是查询的执行时间。

查询执行时间被MySQL记录在一个系统表“ Information_schema.processlist ”里,可以使用下面SQL查询查看每个连接当前正在执行的SQL状态:

“`sql

SELECT TIME,State,info FROM information_schema.processlist WHERE id=Thread_id;


上面的SQL语句会返回当前正在执行的SQL的执行时间,状态以及相关的Sql语句,可以帮助我们确定那些是超时的SQL。

MySQL也提供了一些系统变量来控制执行时间:超时时候允许的最长执行时间可以通过下面的变量来设置:

```sql
SET GLOBAL max_query_time = 30;

以上SQL设置最长允许执行时间为30秒,如果超过30秒MySQL将会停止执行并报出超时。MySQL同样也能把异常长的查询记录下来,可以使用变量’log_queries_not_using_indexes’开启查询日志,把所有没有完成索引优化的查询记录下来,只要查看慢日志就能简单快捷的找到性能瓶颈。

总的来说,查询执行时间是MySQL DBA经常要关注的,掌握了这些查询把意识执行时间的相关SQL查询和系统变量设置,可以帮助我们更快更好的定位查询性能瓶颈。


数据运维技术 » MySQL查询执行时间简单掌握(mysql查看执行时间)