osmosis 스키마를 사용하여 네덜란드의 OpenStreetMap 데이터를 PostGIS 데이터베이스 (PostgreSQL 8.3 / PostGIS 1.3.3)에로드했습니다 . 이는 모든 태그가 hstore 필드에 저장됨을 의미 합니다. 삼투가 지오메트리 필드에 생성하는 GIST 인덱스 외에도 tags 필드에 추가 GIST 인덱스를 만들었습니다.
태그 필드에서 공간 제약 조건과 제약 조건을 모두 사용하여 쿼리하려고하면 원하는 것보다 느립니다. 이와 같은 쿼리 :
SELECT n.geom,n.tags,n.tstamp,u.name FROM nodes AS n
INNER JOIN users AS u ON n.user_id = u.id
WHERE tags->'man_made'='surveillance'
AND ST_Within(geom, ST_GeomFromText('POLYGON((4.0 52.0,5.0 52.0,5.0 53.0,4.0 53.0,4.0 52.0))',4326));
78 개의 레코드를 반환하는 데 22 초가 걸립니다.
이 표에는 약 5 천 5 백만 개의 레코드가 있습니다.
이 속도를 크게 높일 수있는 방법이 있습니까? PostgreSQL 9에서 hstore가 크게 향상되었다고 들었습니다. 도움이 될까요?