gpt4 book ai didi

sql - 手动更改postgresql中查询的执行计划?

转载 作者:行者123 更新时间:2023-11-29 11:31:27 27 4
gpt4 key购买 nike

是否可以在 postgresql 中手动更改执行计划的操作顺序?例如。如果我总是想在过滤之前进行排序操作(尽管在正常使用 postgresql 时它没有意义),是否可以通过例如手动强制执行该操作改变运营的内部成本?

如果我实现自己的功能呢?有没有可能让这样的函数一直在sql语句的最后执行?

最佳答案

使用子查询或 CTE首先强制执行某些操作。喜欢:

SELECT *
FROM (
SELECT *
FROM tbl
LIMIT 10
) x
ORDER BY 1;

当然,您需要了解您在做什么。在示例中,我选择了 10 个任意行,然后按第一列对它们进行排序。
您可以连续使用多层子查询或多个 CTE。

与 CTE 相同的示例:

WITH x AS (
SELECT *
FROM tbl
LIMIT 10
)
SELECT *
FROM x
ORDER BY 1;

对于简单查询,子查询通常更快,CTE 提供额外的功能(比如在不同查询级别的多个地方重用相同的 CTE)。

关于sql - 手动更改postgresql中查询的执行计划?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14982120/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com