4

这是带有几何字段的表:

         Table "public.regions"
  Column   |         Type          |
-----------+-----------------------+-
 id        | integer               | 
 parent_id | integer               |
 level     | integer               |
 name      | character varying(55) |
 location  | geometry              |

我存储了所有大陆、国家、州和城市的几何图形。由于它是一个巨大的表,我需要根据顶级位置(即大陆)对表进行分区以提高性能。

如何根据 geometry(continent) 对现有表进行分区?创建名为 asia, europe, australia ... 的继承表并根据包含的查询在这些表中插入行是否足够好?这会提高我的查询性能吗?

例如。我正在尝试运行以下查询:

11.562424 48.148679 是慕尼黑的某个地方

EXPLAIN ANALYZE SELECT id, name,level FROM regions WHERE Con​​tains((location),(GeomFromText('Point(11.562424 48.148679)')));

这在我的计算机中使用 PG 大约需要 500 毫秒,而在 Oracle 中相同的查询大约需要 200 毫秒。

4

0 回答 0