【发布时间】:2021-08-15 02:45:47
【问题描述】:
如果我在 postgres 中进行以下查询,是计算 ts_rank 两次还是只计算一次?如果计算两次,是否可以只计算一次?
SELECT id, name, "createdAt", price, ts_rank(document, to_tsquery(:query)) AS rank
FROM search_index
WHERE document @@ to_tsquery(:query)
ORDER BY ts_rank(document, to_tsquery(:query)) DESC;
【问题讨论】:
-
取决于函数是标记为不可变、稳定还是易失,以及预测成本是多少。