既非递归也没有任何副作用(例如 INSERT/UPDATE/DELETE)的 WITH 查询可以内联执行,从而带来性能改进。可以通过使用 "NOT MATERIALIZED" 子句强制对查询执行此行为,例如:
WITH cte AS NOT MATERIALIZED (
SELECT * FROM a
)
SELECT * FROM cte
JOIN b ON b.id = cte.id;
更多信息请访问 https://www.postgresql.org/docs/12/queries-with.html