美文网首页
exist和in

exist和in

作者: 奔跑之咸鱼 | 来源:发表于2021-01-02 17:18 被阅读0次

    A:select 字段 from a where id in (select id from b)

    B:select 字段 from a where id exist (select id from b)

    这两条SQL语句看上去差别不大,数据量一大了,效率的差距还是很明显的

    两条SQL出现这个差距的主要原因还是执行顺序不同,A先执行子查询再执行主表查询,而B正好相反先查询主表再查询子查询。用小表来驱动大表,简单来说让先执行的表是小表就可以了

    所以我们得到的结论就是 b是小表,a是大表可以用in;a是小表,b是大表可以用exist。需要注意的是如果遇到了not in和not exist的直接用not exist,因为not in不走索引,其实走不走索引也要看mysql版本,不同版本情况不一样

    相关文章

      网友评论

          本文标题:exist和in

          本文链接:https://www.haomeiwen.com/subject/obbeoktx.html