Postgresql

PostGIS 可以在外部表上使用空間索引嗎?

  • June 26, 2017

我正在嘗試對一些外部空間表執行查詢,這些表比在普通空間表上執行的時間長幾個數量級,因為未使用索引。

索引似乎正在處理非空間查詢。

這是應該工作還是不支持?

假設目前的 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');

這是Michael Paquier 的相關部落格文章

引用自:https://dba.stackexchange.com/questions/177269