【发布时间】:2022-11-14 08:20:21
【问题描述】:
我试图了解我在 postgres 中编写查询的方式是否不能大规模执行(因为我如何使用视图来组织 DRY 代码)。
我认为这归结为在加入表格之前过滤表格是否等同于加入表格,然后进行过滤。
这是一个示例:有人可以告诉我选项 1 和选项 2 的性能是否相同吗?
选项1
with filteredTable1 as
(select *
from table1
where table1.id = 1),
filteredtTable2 as
(select *
from table2
where table2.id = 1)
select *
from filteredTable1
inner join filteredTable2 filteredTable1.id = filteredTable2.id
选项 2
with joinedTables as
(select *
from table1
inner join table2 on table1.id = table2.id)
select *
from joinedTables
where id1 = 1
谢谢!
【问题讨论】: