我在 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 输入?
如果两个查询具有相同的计划,则 Redshift 可能会在后面重写它以优化其中一个或两个语句。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)