[OSM-Devserver] pgsql/hstore für POI-Karten!

Sven Geggus lists at fuchsschwanzdomain.de
Sa Mär 20 17:46:26 CET 2010


Mitja Kleider <mitja at kleider.name> wrote:

> Bei dem aktuellen load ist es mehr geworden:
> 
> explain analyze select osm_id,tags->'name',astext(way) from
> germany_osm_hstore_poi where (tags ? 'shop') and (tags->'shop') =
> 'bakery' AND ST_Intersects(way, SetSRID('BOX(51.44679 9.64743, 51.63022
> 10.22353)'::box2d,4326));
> 
> Total runtime: 150783.244 ms
> 
> ************
> 
> explain analyze select osm_id,tags->'name',astext(way) from
> germany_osm_hstore_poi where ST_Intersects(way, SetSRID('BOX(51.44679
> 9.64743, 51.63022 10.22353)'::box2d,4326)) AND (tags ? 'amenity') and
> (tags->'amenity') = 'restaurant';
> 
> Total runtime: 516990.710 ms
> 
> (etwas über 8 Minuten)
> 
> 
> Ich bin leider kein Datenbank-Experte und würde gerne Optimierungen
> kennenlernen.

Ich auch nicht wirklich.

Das scheint irgendwie an dem Union im view zu liegen. Wenn man die
Anfragen direkt auf die germany_osm_hstore_point bzw.
germany_osm_hstore_line loslässt sind die schnell.

Allerdings kann das so wie Du das machst sowieso nicht klappen, denn
Du musst die Bounding box in Google Merkator umrechnen bevor Du
ST_Intersects verwendest.  SetSRID macht das nicht dazu brauchst du
st_transform.

http://postgis.org/documentation/manual-1.5/ST_Transform.html

Wie sehen eigentlich Anfragen von Mapnik aus der müsste doch
eigentlich genau sowas requesten wie Du auch brauchst.

Gruss

Sven

-- 
Trotz der zunehmenden Verbreitung von Linux erfreut sich der Bär,
und - dank Knut - insbesondere der Eisbär, deutlich größerer
Beliebtheit als der Pinguin. (Gefunden bei http://telepolis.de/)
/me is giggls at ircnet, http://sven.gegg.us/ on the Web