【发布时间】:2020-09-10 18:30:21
【问题描述】:
我需要加入 2 个表,但其中一个表有一个必须应用的常量过滤器,我的问题是哪个选项在性能方面更好:
-
在“FROM”上使用常量过滤器并设置这样的别名:
SELECT <result fields> FROM (SELECT <table A fields> FROM filtered_table WHERE field = value) AS A LEFT OUTER JOIN tableB ON A.id = tableB.id -
在主查询的
WHERE中设置过滤器:SELECT <result fields> FROM filtered_table AS A LEFT OUTER JOIN tableB ON A.id = tableB.id WHERE a.field = value
【问题讨论】:
-
我很确定任何现代 DBMS 都会以完全相同的方式运行这两个查询。但如果您想确定,请查看execution plan
标签: sql performance query-optimization sql-tuning