我正在寻求优化我的 PostgreSQL 查询,但在涉及 ORDER BY 时找不到有关查询规划器内部工作的任何信息。
考虑以下 PostgreSQL 查询:
SELECT *
FROM mytable
ORDER BY rank, ST_Distance(geom1, geom2)
是否为 mytable
中的所有行计算了 ST_Distance(geom1, geom2)
,即使 rank
是唯一的?
这不是 postgis 问题。 ST_Distance(geom1, geom2)
可以是任何需要(昂贵的)计算的表达式。
最佳答案
所有的都被评估了。 PostgreSQL 的 sort 投影它预先进行比较所需的所有表达式并存储结果。它不会推迟表达式求值,直到出现平局。
关于postgresql - 在 PostgreSQL 中,是否计算了 ORDER BY 子句中的所有表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70592365/