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 效率低得原因到底是啥

猜你喜欢

转载自blog.csdn.net/u014761344/article/details/43937123