这是带有几何字段的表:
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 Contains((location),(GeomFromText('Point(11.562424 48.148679)')));
这在我的计算机中使用 PG 大约需要 500 毫秒,而在 Oracle 中相同的查询大约需要 200 毫秒。