Osmoz şemasını kullanarak bir PostGIS veritabanına (PostgreSQL 8.3 / PostGIS 1.3.3) yüklenen Hollanda için OpenStreetMap verilerine sahibim . Bu, tüm etiketlerin bir hstore alanında saklandığı anlamına gelir . Osmozun geometri alanında oluşturduğu GIST endeksine ek olarak, etiketler alanında ek bir GIST indeksi oluşturdum.
Hem uzamsal bir kısıtlama hem de etiketler alanında bir kısıtlama kullanarak sorgulamaya çalışırken, istediğimden daha yavaş olduğunu düşünüyorum. Bunun gibi bir sorgu:
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 kayıt döndürmek 22 saniye sürer.
Bu tabloda yaklaşık 53 milyon kayıt var.
Bunu önemli ölçüde hızlandırmanın bir yolu var mı? Ben hstore PostgreSQL 9 önemli ölçüde daha iyi uygulandığını duydum, yükseltme yardımcı olur mu?