当前位置: 首页 > >

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

MySQL从4.1版本开始支持子查询,使用子查询进行SELECT语句嵌套查询,可以一次完成很多逻辑上需要多个步骤才能完成的SQL操作。子查询虽然很灵活,但是执行效率并不高。


那么问题来了,什么是子查询?为什么它的效率不高?


子查询:把内层查询结果当作外层查询的比较条件


示例:


select goods_id,goods_name from goods where goods_id = (select max(goods_id) from goods);


执行子查询时,MYSQL需要创建临时表,查询完毕后再删除这些临时表,所以,子查询的速度会受到一定的影响,这里多了一个创建和销毁临时表的过程。


优化方式:


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



友情链接: year2525网 工作范文网 QS-ISP 138资料网 528200 工作范文网 baothai 表格模版