我想匹配來自兩個表的幾何,並基於匹配更新一個表。但是這需要很長時間。幾何匹配和更新
表1
+-------------+----------+-------------+
| Column | Type | Modifiers |
|-------------+----------+-------------|
| id | bigint | |
| jid | integer | |
| geom | geometry | |
+-------------+----------+-------------+
Indexes:
"points_geom_gix" gist (geom)
"points_jid_idx" btree (jid)
表2
+----------+----------+------------+
| Column | Type | Modifiers |
|----------+----------+------------|
| id | integer | |
| geom | geometry | |
+----------+----------+------------+
Indexes:
"jxn_geom_idx" gist (geom)
我試着用波紋管查詢。
UPDATE table1 SET jid = a.id from table2 a WHERE st_equals(geom,a.geom);
和
UPDATE table1 SET jid = b.id from table1 as a JOIN table2 b on st_equals(a.geoproperty,b.geom);
但是,這兩個查詢正在服用的時間(小時),數額巨大。
如果我在兩個表中計算匹配幾何,它會在幾秒鐘內計數。
UPDATE 我使用PostgreSQL 9.5.7和2.2.1的PostGIS
大約有多少記錄你有沒有在表中?你是否注意到其他表的更新性能問題? –
什麼版本的Postgis?你能解釋嗎?包括邊框比較是否加快了速度? 'WHERE geom〜= a.geom AND st_equals(geom,a.geom);' –
我用版本更新了這個問題。 –