旧的 IN 与 Exists 与 Left Join(其中 ___ 为或不为空);表现

2023-12-04

我发现自己陷入了困境。我的表只有一列(抑制或包含列表),或多或少是 varchar(25) 但问题是在主查询中使用它们之前我没有时间对它们进行索引,并且取决于它的重要性,我不知道每个表中有多少行。所有这一切的核心基表大约有 140 万行和大约 50 列。

我的假设如下:

IN 不应在返回大量值(行)的情况下使用,因为它会按顺序查看值,对吧? (子查询上的 IN 不直接传递值)

连接(INNER 用于包含,LEFT 以及在抑制时检查 Null)最适合大型数据集(超过 1k 行左右)

EXISTS 一直让我担心,因为它似乎对每一行都执行一个子查询(全部 140 万行?哎呀。)

我的直觉是,如果可行的话,获取抑制表的计数并使用 IN(对于 1k 行以下)和 INNER/LEFT Join(对于 1k 行以上的抑制表)注意,我将抑制的字段将是索引中的索引大基表,但抑制表不会。想法?

预先感谢您的任何和所有评论和/或建议。


假设 TSQL 的意思是SQL Server,您是否看过有关 NOT IN、NOT EXISTS 和 LEFT JOIN IS NULL 比较的链接?综上所述,只要被比较的列不能为NULL,NOT IN and NOT EXISTS比更有效率LEFT JOIN/IS NULL...

关于 IN 和 EXISTS 之间的区别需要记住的一点 - EXISTS 是一个布尔运算符,并且在第一次满足条件时返回 true。尽管您在语法中看到了相关子查询,但 EXISTS 的性能比 IN 更好...

另外,IN 和 EXISTS 仅检查值比较是否存在。这意味着不会出现像 JOINing 时那样的重复记录...

这确实取决于,所以如果你真的想找到最好的方法,你就必须测试和比较查询计划正在做什么......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

旧的 IN 与 Exists 与 Left Join(其中 ___ 为或不为空);表现 的相关文章

随机推荐

  • 将文档预加载到 iOS 应用程序中

    情况 我有一个 iOS 应用程序 可以处理文件并允许用户保存 编辑 打开这些文件并执行各种操作 我希望能够有一些预制文档供用户在打开应用程序 例如模板 以及他们自己的自定义文档时查看 问题 如何创建文档 或模板文件 并在用户安装我的应用程序
  • 在微风中创建复杂类型的未绑定实例的正确方法是什么?

    想象一下以下模型 class ComplexTypeA public string ComplexPropertyA class ParentTypeA public string ParentPropertyA public Comple
  • 省略html的可选标签

    我刚刚读过本文来自谷歌 我一直认为结束标签对于保持 html 文档干净并使其机器可读非常重要 但他们建议相反 你怎么看待这件事 谷歌的情况有点不寻常 因为他们提供了太多的主要搜索页面副本 以至于页面大小的任何微小节省很快都会增加 这意味着对
  • plpgsql - 在声明语句中使用动态表名

    我正在尝试编写 plpgsql 一个以下形式的函数 注意这是一个简化版本 CREATE FUNCTION check valid tablename regclass RETURNS boolean AS DECLARE valid row
  • css3 比例周围的空白

    我有一个小问题想要解决 但找不到任何好的答案 当我在 div 包含其他 div 上使用比例时 它会在 div 的 原始 宽度和高度周围留下空白 如何在缩放时删除 div 周围的空白 如果需要的话我可以使用js 编辑 这是一些代码 HTML
  • 为什么 lea 指令只是执行算术运算,却以内存寻址命名? [复制]

    这个问题在这里已经有答案了 The lea指令 加载有效地址 获取第一个值的内存地址并将其与第二个值相加 第二个值可能会相乘 然后它将该内存地址加载到给定的寄存器中 我举个例子来澄清一下我的困惑 eax 2 leal eax eax 4 e
  • iOS7.0 和 iOS 7.1 不支持动态桌面视图高度

    我在 UITableViewCell 的各种实现中使用了自动布局 该方法是让固有大小定义大小 进而为 tableview 行提供高度 奇怪的是 在 UITableViewCell 中使用 Autolayout 来定位 iOS7 及更高版本并
  • Android SENSOR_DELAY_FASTEST 不够快

    我正在使用传感器来平衡机器人 但是SENSOR DELAY FASTEST只提供10Hz的采样率 这根本不够快 有没有更快的采样方法 有没有一种方法可以轮询传感器而不是等待SensorEvent 有没有更快的采样方法 SENSOR DELA
  • bash - 如何获取(当前)儒略日数?

    如何获得今天的儒略日数 JDN 相等的 或者任何日期 我看了又看 但只发现了一些产生 year dayOfYear 的函数 而不是类似 2457854 in bash date j返回儒略日期 root TX Serv 1 date j 1
  • 如何在 ASP.NET 中从 Exchange Web 服务托管 API 2.0 更新约会

    我使用 EWS 托管 API 2 0 创建约会 效果很好 但也想更新现有的约会 我读到我需要预约 ID 来指定应编辑哪个预约 但是身份证在哪里呢 这是我创建约会的方法 Creates the Appointment Dim appointm
  • Koha RESTful api

    我一直在互联网上查找有关 Koha ILS Restful api 的信息 但没有找到任何具体信息 这个链接讨论了它的 HTTP API http wiki koha community org wiki Koha svc HTTP API
  • d3.js-向堆积条形图中的一个条形添加不同的颜色

    我使用 d3 js 创建了堆积条形图 我想显示一个具有不同颜色的条形图 以突出显示特定 x 轴值的数据 如下所示 我用来绘制堆积图的脚本如下 Set the dimensions of the canvas graph var svg d3
  • 如何在R中的关键字前添加逗号?

    我目前有一个城市的数据框 向量 其末尾有以以下任何一个开头的单词 Util Municipal Police Water 或末尾有 如何前往 Col City of Fake Municipal Court City of Pretend
  • 安装依赖项时composer-plugin-api错误

    我正在尝试为我正在处理的现有 Symfony 项目安装依赖项 我看了这个https getcomposer org doc 01 basic usage md composer lock the lock file它说我应该运行更新命令 p
  • 独立 EJB 客户端需要哪些 JBoss 5.1 库?

    我正在从 JBossAS 4 05 迁移到 JBoss 5 1 并且我对需要在 EJB 独立客户端中更改哪些库有疑问 从 JBossAS 4 0 5 开始 我有一个需要在所有客户端中部署的库的直接列表 但是 在 5 1 版本中 一些库被更改
  • 一页多个ajax请求+如何做+最佳实践

    我现在正在研究谷歌图表 并且已经有了一个基本的设置 它目前所做的是连接到数据库并返回基于 1 个查询的数据集 我想知道的是 如果我想用不同的数据库查询绘制更多图表 我该怎么做 或者什么是最佳实践 例如 已经有一个与一个查询的连接 如何添加另
  • MATLAB 舍入函数 - 如何向上或向下舍入 0.5?

    MATLAB 的舍入函数如何与 5 一起使用 比如5 5 是向上舍入到 6 还是向下舍入到 5 Mathworks 页面讨论这个函数没有提到这一点 这个例子也没有帮助 以下是 MATLAB 舍入函数的 mathworks 页面 mathwo
  • 从 Java 代码生成 Maven 原型

    我想知道是否可以在Java代码中运行maven命令 archetype generate 我已经使用 Maven 嵌入器尝试过此操作 但该库已被弃用 我想做一个原型 从远程目录生成 并捕获原型所需的属性 我想要运行的maven命令例如是 m
  • 可以在 R 中使用 gganimate 对多边形填充进行动画处理吗?

    I have county level data recording the year an invasive insect pest was first detected in that county between 2002 and 2
  • 旧的 IN 与 Exists 与 Left Join(其中 ___ 为或不为空);表现

    我发现自己陷入了困境 我的表只有一列 抑制或包含列表 或多或少是 varchar 25 但问题是在主查询中使用它们之前我没有时间对它们进行索引 并且取决于它的重要性 我不知道每个表中有多少行 所有这一切的核心基表大约有 140 万行和大约