首页 > 数据库技术 > 详细

mysql的子查询效率

时间:2021-07-02 15:06:48      阅读:12      评论:0      收藏:0      [点我收藏+]

对于mysql来说,我们并不推荐使用子查询  

由于在mysql中,执行子查询时,需要创建临时表,查询完毕之后再删除这些临时表,

所以子查询的速度会受到一些影响,这里多了一个创建于销毁临时表的过程

另外由于子查询使用的是关联查询,

那怎么解决这个问题呢? 

这里我们推荐使用join来代替子查询,因为join不需要建立临时表来查询

因此尽量使用链接来代替子查询,不过需要注意的是,使用连接查询,则两个链接表之间必须有相关联的字段

一个表的主键在另一个表中为外键等,才可以使用。

例如:

select sname from student where sid in (select sid from class where cid=2) 
//这时mysql会建立一个cid=2的临时表,从这个表中查找cid=2的sid 
//接下来我们使用join连接查询
select sname from student s,class c where s.sid=c.sid and cid=2 
//使用连接查询,则不会有临时表的生成。

 

mysql的子查询效率

原文:https://www.cnblogs.com/w-Lou/p/14962351.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!