我正在运行一个查询来确定表中每个多边形的多边形中的点数.点层(twitter)有500米行,多边形层(us_urbanareas)有~3000行.点图层的几何图形已编制索引.
查询看起来像:
EXPLAIN SELECT us_urbanareas.name, us_urbanareas.gid, count(twitter.coords) AS total
FROM us_urbanareas LEFT JOIN twitter
ON st_contains(ST_Transform(us_urbanareas.geom,4326),twitter.coords)
GROUP BY us_urbanareas.gid LIMIT 500
Run Code Online (Sandbox Code Playgroud)
并解释如下:
"Limit (cost=1265.59..47875481.71 rows=500 width=45)"
" -> GroupAggregate (cost=1265.59..342780653.01 rows=3580 width=45)"
" -> Nested Loop Left Join (cost=1265.59..340247956.29 rows=506532183 width=45)"
" -> Index Scan using us_urbanareas_pkey on us_urbanareas (cost=0.28..1000.18 rows=3580 width=4028)"
" -> Bitmap Heap Scan on twitter (cost=1265.31..94899.56 rows=14149 width=32)"
" Recheck Cond: (st_transform(us_urbanareas.geom, 4326) && coords)"
" Filter: _st_contains(st_transform(us_urbanareas.geom, 4326), coords)"
" -> Bitmap Index Scan on …Run Code Online (Sandbox Code Playgroud)