首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >为什么子查询比连接查询(LEFT JOIN)效率低

为什么子查询比连接查询(LEFT JOIN)效率低

作者头像
wuweixiang
发布2018-08-14 11:39:49
发布2018-08-14 11:39:49
4.5K0
举报
文章被收录于专栏:吴伟祥吴伟祥

MySQL从4.1版本开始支持子查询,使用子查询进行SELECT语句嵌套查询,可以一次完成很多逻辑上需要多个步骤才能完成的SQL操作。子查询虽然很灵活,但是执行效率并不高。 那么问题来了,什么是子查询?为什么它的效率不高? 子查询:把内层查询结果当作外层查询的比较条件

示例:

select goods_id,goods_name from goods where goods_id = (select max(goods_id) from goods); 执行子查询时,MYSQL需要创建临时表,查询完毕后再删除这些临时表,所以,子查询的速度会受到一定的影响,这里多了一个创建和销毁临时表的过程

优化方式:

可以使用连接查询(JOIN)代替子查询,连接查询不需要建立临时表,因此其速度比子查询快。

作者:michael_wlq 链接:http://www.jianshu.com/p/cb1e14c0ac39 來源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/09/20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档