PostGIS
切換暗/亮/自動模式 - PostGIS 空間資料庫 切換暗/亮/自動模式 - PostGIS 空間資料庫 切換暗/亮/自動模式 - PostGIS 空間資料庫 返回首頁 - PostGIS 空間資料庫

我該如何使用空間索引?

在空間 SQL 查詢中取得良好的效能,使用空間索引非常重要!您需要執行兩件事才能使用空間索引

  • 建立空間索引;而且
  • 使用一個具有「空間索引感知」的函數。

若要建立一個空間索引,請使用 CREATE INDEX 指令,但指定 USING GIST 存取方法,如下

CREATE INDEX mytable_geom_x ON mytable USING GIST (geom)

當連結至 GIST 存取方法時,幾何的預設索引為 R 樹。如果您忘記包含 USING GIST 部分,您將會得到一個標準 PostgreSQL「B 樹」索引,這是一個非空間索引,且無法協助您的查詢。

有一組有限的函數可以使用空間索引作為預過濾器,以加速查詢,如下所示

因此,空間聯集查詢可以用到空間關係函數,並取得像這樣的索引加速

SELECT a.*
FROM a
WHERE ST_Intersects(a.geom, ST_Point(-126, 45, 4326))

並可以用空間關係驅動聯集,如下所示

SELECT a.name, b.id
FROM a
JOIN b
  ON ST_Contains(a.geom, b.geom)
WHERE a.name = 'Pleasantown'