小编mik*_*ine的帖子

优化postgis索引查询.注意:gserialized_gist_joinsel:不支持jointype 1

我正在运行一个查询来确定表中每个多边形的多边形中的点数.点层(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)

sql postgis query-optimization postgresql-9.3

2
推荐指数
1
解决办法
6941
查看次数

标签 统计

postgis ×1

postgresql-9.3 ×1

query-optimization ×1

sql ×1