mysql in的效率问题

mysql 初级入门狗 被学长们教育了一顿决定写个东西记录一下   

select  *from a where id in (select id from b);

这么写sql 语法上是没问题的  但是一定会被老大骂死  这么写效率能低还到死  很容易就10几秒才跑完

原因还没研究太明白,不敢乱写 只写几个解决方案吧 

1 将语句分成两个来写   把select id from b 单提出来

2 将上述语句改成这样子select  *from a where id in (select  id from (select id from b) as tbt );

3 直接使用left join   select a.* from a left join (select  id from b) m on a.id=b.id;

这几种都是解决方案  但是大神们都普遍推荐第一种  而且都希望不用in   后续补充in 效率低得原因到底是啥

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值