MySQL查看SQL语句执行时间的步骤与优化建议

Evan
Evan
发布时间:2026-10-16 | 4人浏览过
原创

本文介绍了如何在MySQL中开启并查看SQL语句的执行时间,对比不同查询方式对性能的影响,帮助读者掌握基本的数据库性能分析与优化技巧。

初始化测试环境

为了准确评估不同SQL语句的执行效率,我们需要在数据库中创建一个用户表 t_users 并插入一些测试数据。

第1步:创建用户表结构

目的:搭建一个包含常见字段的简单用户表。
入口:MySQL命令行或图形化工具(如Navicat)。
动作:执行建表语句。
重要参数:id int primary key auto_increment 用于设置主键自增。

-- 用户表
create table t_users(
    id int primary key auto_increment,
    -- 用户名
    username varchar(20),
    -- 密码
    password varchar(20),
    -- 真实姓名
    real_name varchar(50),
    -- 性别 1表示男  0表示女
    sex int,
    -- 出生年月日
    birth date,
    -- 手机号
    mobile varchar(11),
    -- 上传后的头像路径
    head_pic varchar(200)
);

第2步:插入测试数据

目的:提供足够的数据量以展示查询结果。
动作:执行批量插入语句。
可观察的完成状态:控制台显示Query OK,受影响的行数正确。

-- 添加用户数据
insert into t_users values(null,'whj','123456','王恒杰',1,NOW(),'12345678901','boy.jpg');
insert into t_users values(null,'dzw','123456','邓正武',1,NOW(),'12345678901','boy.jpg');
insert into t_users values(null,'yfj','123456','杨福君',1,NOW(),'12345678901','girl.jpg');
insert into t_users values(null,'zx','123456','张西',1,NOW(),'12345678901','girl.jpg');
insert into t_users values(null,'zxj','123456','周宣君',0,NOW(),'12345678901','boy.jpg');
insert into t_users values(null,'lfk','123456','刘福昆',1,NOW(),'12345678901','boy.jpg');

开启并查看SQL执行时间

MySQL提供了一个名为“ profiling ”的功能,可以详细记录SQL语句执行的各个阶段耗时。默认情况下该功能是关闭的。

第1步:检查当前状态

目的:确认是否已开启执行时间统计。
入口:SQL查询窗口。
动作:先输入 show profiles; 。此时如果没有开启过相关功能或没有进行过任何查询,通常不会返回具体数据。
可观察的完成状态:无数据或仅有空列表。

第2步:查看配置变量

目的:找到控制profiling功能的变量 profiling 并确认其当前值(ON/OFF)。
动作:使用模糊查询命令,避免查看所有繁杂的系统变量。

show variables like 'profiling';

一般情况下,刚安装的数据库默认值为 OFF ,表示未开启性能分析。

第3步:开启 Profiling

目的:启用SQL执行时间监控。
动作:执行以下设置语句。

set profiling=1;

配置生效后,当前会话下的所有SQL查询都将被记录下来,后续只需调用 show profiles; 即可查看执行耗时详情。

实战对比:不同查询方式的耗时表现

在实际开发中,SQL语句的写法直接影响运行速度。我们选取三种不同的查询方式进行对比验证。

select * from t_users;     
select id,username,password,real_name,sex,birth,mobile,head_pic from t_users;
 
select * from t_users where username like 'whj';

执行上述命令后,再次使用 show profiles; 查看这三条查询的执行时间:

结论与优化建议

通过直观的时间数据对比可以发现,当数据量增加时,直接使用 SELECT * 查询整张表与明确列出所需字段之间的性能差距会变得非常明显。虽然在此小数据量示例中差异可能不巨大,但在生产环境中,不必要的字段传输会占用更多内存和带宽资源。

因此,建议在日常编写SQL查询时养成好习惯:尽量避免使用 *通配符,而是根据需要明确指定所需的字段列,这样能有效提升查询效率。

以上就是MySQL中查看Sql语句的执行时间及简单优化的详细内容,更多关于MySQL查看Sql语句执行时间与性能优化的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表