【MySQL】基于MySQL的SQL优化(三)——对子查询进行优化

*本文章使用数据均来自MySQL样本数据库Sakila,参考:https://blog.csdn.net/tanglei6636/article/details/93042010

通常情况下,需要把子查询优化成JOIN查询。
优化前

这是一个实现查询演员名为“sandra”的表演影片片名的SQL,通过EXPLAIN关键字进行解析,这个查询中包含三个子查询,并且出现了两次ALL全表扫描的查询,需要优化。
下面我们把所涉及的子查询进行JOIN形式的改写。
ON

或者用WHERE的形式进行优化。
WHERE

如图,从EXPLAIN的解析上来看查询已经进行了非常大的优化提升,不仅减少了一次ALL全表扫描,还让所有的SQL的select_type变成了SIMPLE简单查询。
注意:在进行优化时要注意一对多的关系,要处理重复数据(如使用DISTINCT关键字)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值