我在postgres中有一个表,其中包含一些区域和地理数据类型(多边形格式),另一个表中包含产品名称和地理位置(point,4326)。我尝试了这个查询
“select st_intersects(schema1.tableA.geom1,schema2.tableB.geom2) from schema1.tableA inner join schema2.tableB on st_intersects(schema1.tableA.geom1,schema2.tableB.geom2)或者这个:
”select prod_id from schema1.tableA inner join schema2.tableB on st_intersects(schema1.tableA.geom1,schema2.tableB.geom2) where
st_intersects(schema1.tableA.geom1,schema2.tableB.geom2).”这两个都是在没有任何输出的情况下运行,并且没有停止。其目的是获得特定领域的产品。Postgis扩展已安装,我可以将其用于此数据库上的其他任务。
发布于 2020-10-05 23:43:57
您的第二个查询只能使用嵌套循环连接执行,如果两个表都很大,则执行速度将始终很慢。第一个查询有两次联接条件,这不会有什么不同,只是查询速度会更慢。
在两个表中较大的一个上,您应该在几何列上创建一个GiST索引,这将尽可能加快处理速度。如果多边形很大,并且有很多点,这将使查询速度变慢。
https://stackoverflow.com/questions/64208913
复制相似问题