【发布时间】:2018-06-27 12:02:01
【问题描述】:
我在构建一个简单的缓冲区内的点查询时遇到了速度问题,即。 在给定质心和缓冲区距离的情况下计算缓冲区内的点数。
我有<100 质心(缓冲区)和250.000 点。
两个表都有索引并且事先已经过真空分析。
我一直在尝试几件事,但似乎没有一个有效。
SELECT parcels.id, count(*) AS totale
FROM
_BUFFERS parcels,
_POINTS ints
WHERE
AND ST_intersects( ST_Buffer(parcels.centroid::geography, 800), ints.geom)
GROUP BY parcels.id;
还尝试了LATERAL 加入但没有成功:
SELECT r.id, r.pcount FROM
(SELECT
id, ST_Buffer(centroid::geography, 800) as the_geom
FROM
_BUFFERS ) n,
LATERAL (
SELECT
n.id, count(*) as pcount
FROM
_POINTS p
WHERE
n.the_geom && geom
) r
我一定是在这里做错了什么?? 谢谢!
【问题讨论】:
标签: polygon postgis point intersect lateral-join