PostgreSQL 是否会删除重复子查询?

问题描述 投票:0回答:1

例如,这些在性能上有何不同?

SELECT EXISTS (SELECT * FROM b WHERE a.col = b.col) AS e
FROM a
WHERE e
SELECT EXISTS (SELECT * FROM b WHERE a.col = b.col)
FROM a
WHERE EXISTS (SELECT * FROM b WHERE a.col = b.col)
postgresql performance subquery
1个回答
0
投票

子查询将被评估两次。在您的人为情况下,您可以通过编写

SELECT TRUE FROM a WHERE ...
来避免这种情况,但没有适用于每个查询的通用解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.