Postgis 函数
Postgis function
我在 postgres 中有一个 table,带有一些区域和地理数据类型(多边形格式),另一个 table 带有产品名称和地理位置(点,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 扩展已安装,我可以将其用于此数据库上的其他任务。
您的第二个查询只能使用嵌套循环连接执行,如果两个表都很大,那么它总是很慢。第一个查询有两次连接条件,这不会有什么区别,只是查询会更慢。
在两个表中较大的一个上,您应该在几何列上创建一个 GiST 索引,这将尽可能加快处理速度。如果多边形很大并且有很多点,那会使查询变慢。
我在 postgres 中有一个 table,带有一些区域和地理数据类型(多边形格式),另一个 table 带有产品名称和地理位置(点,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 扩展已安装,我可以将其用于此数据库上的其他任务。
您的第二个查询只能使用嵌套循环连接执行,如果两个表都很大,那么它总是很慢。第一个查询有两次连接条件,这不会有什么区别,只是查询会更慢。
在两个表中较大的一个上,您应该在几何列上创建一个 GiST 索引,这将尽可能加快处理速度。如果多边形很大并且有很多点,那会使查询变慢。