我在缓冲区查询中构建简单点时遇到速度问题,即。在给定质心和缓冲区距离的情况下计算缓冲区内的点数。
我有<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
我一定在这里做错了什么?谢谢!