关于SQL语句的执行速度问题

发布于 2021-11-25 10:29:03 字数 840 浏览 712 评论 1

同一个查询动作,不同的速度:


select u.name,u.email,u2.name,u2.email,u.department_name
from baidu_user u
inner join (select * from baidu_user) u2
on u.superior_id = u2.id
where u.id in (select id from completed_user);
/* Affected rows: 0  已找到记录: 5,446  警告: 0  持续时间 1 query: 0.328 sec. (+ 0.202 sec. network) */
select u.name,u.email,u2.name,u2.email,u.department_name
from baidu_user u
inner join baidu_user u2
on u.superior_id = u2.id
where u.id in (select id from completed_user);
/* Affected rows: 0  已找到记录: 5,446  警告: 0  持续时间 1 query: 0.500 sec. (+ 34.772 sec. network) */

明显可以看出,上面的SQL语句要比下面的SQL语句的执行效率要更高。唯一的差别,就第三行的的差别,但是不知道为什么会影响执行速度,所以放上来问一下



如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

沦落红尘 2021-11-28 14:56:53

留给dba说话。我也插一句,是不是临时表有关

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文