[OSM-Devserver] Fwd: Schnelleres Rendern durch Preprozessing
Jeronimo Wanhoff
wanhoff at lat-lon.de
Di Mai 18 10:35:07 CEST 2010
Hallo,
ich habe bei der Moderation der Mailingliste diese Mail versehentlich
verworfen. Daher bekommt ihr sie jetzt von mir weitergeleitet.
viele Grüße,
Jeronimo
---------- Weitergeleitete Nachricht ----------
Betreff: Schnelleres Rendern durch Preprozessing
Datum: Montag, 17. Mai 2010
Von: Klaus Gaßner <k_gassner at web.de>
An: Mailingliste für den Development OSM Server
<devserver at lists.openstreetmap.de>
Hi!
Ich wollte mal eine Erkenntnis aus der letzten Umstellung meiner Karte
mit Euch teilen, vielleicht läßt es sich ja für Eure Projekte auch
einsetzen.
Normalerweise haben die Mapnik Layers eine ziemlich komplizierte
SELECT-Anweisung, in der ein Haufen Abfragen auf die einzelnen Tags mit
OR verknüpft werden. Die sind generell ziemlich unhandlich und wurden
von der DB immer mit einem Table Scan abgehandlet, egal was ich an
Tricks mit Indexen versucht habe.
Ich mache mit den Daten ja ein Preprocessing, bevor sie in die DB
kommen. Dabei gibt es einen Moment, wo ich bereits weiß, in welcher
Layer bestimmte Objekte später angezeigt werden sollen. Also habe ich
die Nummer dieser Layer mit in die DB geschrieben. Damit vereinfacht
sich das Statement auf SELECT ... WHERE layer = <nummer>. Auf layer
liegt natürlich ein Index. Ich habe den Eindruck, daß die DB jetzt den
Index nutzt und die Tiles so deutlich schneller gerendert werden.
Natürlich ist die Situation in einer universell verwendbaren Datenbank
etwas komplizierter, aber es könnte Sinn machen, eine Vorauswertung für
die Renderregeln jedes Projektes laufen zu lassen und das Ergebnis in
einer Extratabelle zu speichern. Die Vorauswertung müßte für jeden
Import bzw. Änderung der Regeln nur einmal laufen, dafür sind die
ständig benutzten Statements beim Rendern schneller.
bye
Nop
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname : nicht verfügbar
Dateityp : application/pgp-signature
Dateigröße : 197 bytes
Beschreibung: This is a digitally signed message part.
URL : <https://lists.openstreetmap.de/pipermail/devserver/attachments/20100518/82843773/attachment.pgp>