[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