Select COUNT(*) from indiahighway_ref where (ST_DWithin(ST_Transform(indiahighway_ref.geom,2163),ST_Transform(ST_GeomFromText('POINT(73.919595 18.5622609)', 4326),2163),500))
这花了太长时间。我该如何优化呢。
答案 0 :(得分:0)
您还没有发布解释计划,但我会假设您没有转化索引,因此数据库必须在每一行上运行ST_Transform
。如manual中所述,您需要创建它。
CREATE INDEX indiahighway_ref_geom_2163
ON indiahighway_ref
USING gist
(ST_Transform(geom, 1163))
WHERE geom IS NOT NULL;
答案 1 :(得分:0)
我解决了这个问题。我没必要让它变得复杂。 ST_DWithin在地理位置上工作得更快,并且更准确,因此我将ST_DWithin与地理位置结合使用,并在地理位置上创建了索引,以使查询运行得更快。