gpt4 book ai didi

postgresql - postgres_fdw 下推 sum 和 count,但不是 min 和 max

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

从 PostgreSQL 10.x 开始,外部表支持聚合下推。

我注意到 sum 和 count 操作被推送到远程服务器,但 min 和 max 的推送方式不同。

 select min(col) from foreign_table 

显示带有 ORDER BY 的外部扫描,然后是本地应用的 LIMIT。

在我的例子中,远程服务器实际上是 Redshift 而不是另一个 PostgreSQL 实例,所以这将比在查询中发出 min 慢,就像求和或计数一样奇怪的是,如果你做这样的查询

 select count(col), min(col) from foreign_table 

min 被推送到查询中。

为什么 postgres_fdw 以不同方式处理最小值/最大值,是否有一个优化器设置可以使最小值/最大值与其他聚合函数一样处理?

最佳答案

这实际上是最好和最快的方法。您是否测试过您的断言“这将比在查询中发出 min 慢”?

PostgreSQL 按需从执行器节点获取元组,所以会发生的是 第一行 从外部扫描(通过索引)获取,然后是 LIMIT将完成并且不会获取更多行。这与远程执行 min 时发生的事情本质上是一样的。

关于postgresql - postgres_fdw 下推 sum 和 count,但不是 min 和 max,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51970033/

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