J-D*_*awG 1 postgresql performance index spatial postgis query-performance
我正在尝试对一些外部空间表执行查询,这比在普通空间表上运行的时间长几个数量级,因为没有使用索引。
索引似乎正在处理非空间查询。
这是应该工作的东西还是不受支持?
假设当前的 Postgres 9.6,它可以工作。
Postgres 可以使用远程 Postgres 服务器上的索引。您可能需要做的不仅仅是本地表,autovacuum 不会ANALYZE
自动为远程表运行。首先阅读手册中的“远程查询优化”一章。
更详细的相关答案:
由于 PostGIS 是一个扩展,Postgres 9.6 的这个新特性特别相关:
如果扩展程序在外部服务器的选项中被列入白名单,则允许发送扩展程序提供的运算符和函数以进行远程执行(Paul Ramsey)
当已知扩展存在于远程数据库中的兼容版本中时,用户可以启用此功能。它允许更有效地执行涉及扩展运算符的查询。
大胆强调我的。
索引的使用绑定到操作符。当计划查询时,各种 PostGIS 空间函数被转换为在内部使用运算符。关于SO的这个相关答案有更多解释:
假设本地和远程服务器使用 Postgres 9.6,并且安装了相同版本的 PostGIS,在本地服务器上运行它应该可以解决问题:
ALTER SERVER your_foreign_server_name OPTIONS (ADD extensions 'postgis');
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
374 次 |
最近记录: |