【发布时间】:2018-08-22 15:16:50
【问题描述】:
从 PostgreSQL 10.x 开始,外部表支持聚合下推。
我注意到 sum 和 count 操作被推送到远程服务器,但 min 和 max 的推送方式不同。
select min(col) from foreign_table
显示带有 ORDER BY 的外部扫描,后跟本地应用的 LIMIT。
在我的例子中,远程服务器实际上是 Redshift 而不是另一个 PostgreSQL 实例,所以这会比在查询中发出 min 慢,就像 sum 或 count 一样,奇怪的是,如果您进行类似的查询
select count(col), min(col) from foreign_table
min 将推送到查询中。
为什么 postgres_fdw 对 min/max 的处理方式不同,是否有优化器设置可以让 min/max 与其他聚合函数一样处理?
【问题讨论】:
标签: postgresql postgresql-10 postgres-fdw