PostgreSQL 数据分布与优化策略
1. PostgreSQL 远程连接与版本改进
在 PostgreSQL 中,远程连接的表必须是不同的,自连接操作目前不被下推逻辑所支持。同时,不建议在排序的同时进行连接操作。例如,我们可以将 pgbench_branches 创建为外部表,让远程系统来完成它与 pgbench_accounts 的连接。对于单表查询结果可以进行排序,但如果涉及连接操作,PostgreSQL 会分别对每个表的结果进行排序,然后在本地执行连接。
PostgreSQL 在不同版本有显著的改进:
- PostgreSQL 9.6 :相比旧版本有了很大进步,虽然不能同时进行排序和连接,但已经能分别处理这两项任务。
- PostgreSQL 10 :增加了将聚合函数发送到远程服务器的功能,这适用于内置聚合函数和用户自定义的聚合函数,但要求聚合函数在两个服务器上都存在才能正常工作。
- PostgreSQL 11 :进一步改进了外部数据包装器,即使在分区表的情况下也能下推聚合函数。PostgreSQL 10 的新声明式分区缺少一些功能,而在 11 版本中这些问题得到了解决。
2. 优化外部表访问
外部表并非一无是处,我们可以使用视图来优化外部表的访问。由于 PostgreSQL 外部数据包装器不能总是合并同一服务器上多个表的查询,当我们可以访问远程服务器时,可以创建视图来封装要执行的查询核心。因为 PostgreSQL 只知道远程对象的名称,而
超级会员免费看
订阅专栏 解锁全文
86

被折叠的 条评论
为什么被折叠?



