【问题标题】:WHERE EXISTS vs IN in Amazon RedshiftAmazon Redshift 中的 WHERE EXISTS 与 IN
【发布时间】:2018-06-11 14:29:32
【问题描述】:

我在 Amazon Redshift 中对同一查询的两个版本运行 EXPLAIN:

SELECT t1.column
FROM table1 t1
WHERE t1.column IN
(SELECT t2.column FROM table2 t2);

SELECT t1.column
FROM table1 t1
WHERE EXISTS
(SELECT 1 FROM table2 t2 WHERE t1.column = t2.column );

他们似乎有相同的查询计划。这是否意味着 IN 和 WHERE EXISTS 之间没有性能差异,因为 Redshift 在编译查询之前以某种方式优化了 SQL 输入?

【问题讨论】:

  • 几乎每个现代优化器都会为existsin 查询生成相同的计划(如果可能)
  • 谢谢@a_horse_with_no_name!

标签: sql amazon-redshift


【解决方案1】:

如果两个查询具有相同的计划,则 Redshift 可能会在后面重写它以优化其中一个或两个语句。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-07
    相关资源
    最近更新 更多