美文网首页
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

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

  • in和exist区别

    当B表很大时用exist效率会要高很多 EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任...

  • exist函数

    exist:exist主要有两种形式,一个参数和两个参数的,作用都是用于确定某值是否存在: b = exist( ...

  • sql语句

    sql中in和exist的区别: 1、in先子查询,后主查询 2、exist先主查询,后子查询。子查询中,如果结果...

  • %in%和exist函数用于判断

    %in%:用来判断一个数组或矩阵是否包含在另一个数组或矩阵里。 举个例子一目了然: exists():用于检查是否...

  • MySQL exist in

    转载自 weiyi1314 exists对外表用loop逐条查询,每次查询都会查看exists的条件语句,当 ex...

  • hive数据库操作

    创建表 如果不加if not exist,如果已经存在表,则会报错,但是,如果加了if not exist,则如果...

  • 2017-05-31

    To exist is to change, to change is to mature, to mature ...

  • 有的英语单词怎么读

    表示有的英语单词有have,exist,possess和be等等。例句:He had plenty of work...

  • 学习Linux的常见故障(待更新)

    一. 文件和目录类 1. File exist 文件已经存在 mkdir: cannot create direc...

网友评论

      本文标题:exist和in

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