[Talk-de] Ersatz fuer Namefinder

marcus.wolschon at googlemail.com marcus.wolschon at googlemail.com
Mo Apr 27 13:31:05 UTC 2009


On Mon, 27 Apr 2009 14:56:57 +0200, Christof Amelunxen
>> Du selektierst ja nicht über alle Places eines type
>> sondern nur die in einem maximalen sinnvollen Radius
>> für diese Typ.
>> Das sind im Normalfall 0, 1 oder vieleicht mal 2.
> 
> ...wenn du so selektierst wie von dir beschrieben ("SELECT
> MIN(DISTANCE(X.location, Y.location)) AS distance...") dann 
> selektierst "du" zwar nur einen Datensatz, aber "die Datenbank"
selektiert,
> berechnet und sortiert intern trotzdem alles 
> und das dauert genauso lange ;-)

Sie sollte zuerst den Index mit dem kleinsten CostFactor anwenden
(also entweder den Vergleich auf "key" und "value" in Tag oder
die Bounding-Box auf location). Eine gute Datenbank wird das
Ergebniss mit dem zweiten Index weiter verkleinern können, eine
weniger gute muss da schon anfangen alle Ergebnisse auf die weiteren
Bedingungen hin zu testen.

Da eine Geodatenbank wohl sinnvoll einen Punkt oder einen Linestring
nach Enthaltensein in einer Bounding-Box/in einem Kreis testen kann
sehe ich hier kein Problem.
(The details are left as an exercise to the reader.)

Marcus




Mehr Informationen über die Mailingliste Talk-de