PostGIS 查询耗时过长。 >400ms
Posted
技术标签:
【中文标题】PostGIS 查询耗时过长。 >400ms【英文标题】:PostGIS query taking too long. >400ms 【发布时间】:2017-05-11 19:02:20 【问题描述】: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))
时间太长了。我该如何优化它。
【问题讨论】:
【参考方案1】:您尚未发布解释计划,但我假设您没有关于转换的索引,因此数据库必须在每一行上运行 ST_Transform
。正如manual 中提到的,您需要创建它。
CREATE INDEX indiahighway_ref_geom_2163
ON indiahighway_ref
USING gist
(ST_Transform(geom, 1163))
WHERE geom IS NOT NULL;
【讨论】:
【参考方案2】:我解决了这个问题。我没有必要让它变得复杂。 ST_DWithin 在地理上的工作速度更快并且更准确,因此我将 ST_DWithin 与地理一起使用并在地理上创建索引以使查询运行得更快。
【讨论】:
以上是关于PostGIS 查询耗时过长。 >400ms的主要内容,如果未能解决你的问题,请参考以下文章