我正在尝试匹配两个表中的几何,并根据匹配更新一个表。但这需要很长时间。
表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和Postgis 2.2.1