栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

EXISTS与IN的子查询-MySQL

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

EXISTS与IN的子查询-MySQL

An

Explain Plan
会告诉您为什么要使用
Exists
。通常问题来了
Exists vs Count(*)

Exists
是比较快的。为什么?

  • 关于NULL带来的挑战:当 子查询返回时

    Null
    ,对于IN,整个查询变为
    Null
    。因此,您也需要处理。但是使用
    Exist
    ,它只是一个
    false
    。轻松应对。根本
    IN
    无法与之相比,
    Null
    但是
    Exists
    可以。

  • 例如,

    Exists (Select * from yourtable where bla = 'blabla');
    一旦 找到/匹配匹配项, 您就会得到true / false 。

  • 在这种情况下,

    IN
    sort会根据的位置
    Count(*)
    选择 所有 匹配的行,
    WHERe
    因为它正在比较所有值。

但也不要忘记这一点:

  • EXISTS``IN
    当子查询结果非常大时,针对:高速执行。
  • IN
    领先于
    EXISTS
    :子查询结果非常小时。

参考以获取更多详细信息:

  • 使用IN的子查询。
  • IN-子查询优化
  • 加入与子查询。


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/411591.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号