AW: VS: [mapserver-users] Mapserver search performance

Eichner, Andreas - SID-NLKM Andreas.Eichner at sid.sachsen.de
Fri Apr 15 02:40:06 EDT 2011


Hi,

AFAIK dBase files don't provide an index themselves and there's no other
way to provide one. shptree only creates an spatial index. Therefore
only queries like 'does this geometry touch/intersect/lie within a given
rectangle'can be accelerated.

> I tried the shptree tool but did not see any performance improvement.

So this becomes clear: By doing a JOIN MapServer basically runs a loop:
for each geometry that matches search withing external data for a line
matching the join condition.

> Could it be because all of this information that I require is coming
> from an external DBF file that I join to the layer/shape's DBF? Will
> including all these fields/information in the shape's DBF file itself
> help?

I'm pretty sure that this would help, since this would avoid the
(unaccelerated) join. With a database like PostgreSQL/PostGIS or SQlite
it's basically the same problem: if you don't create an appropriate
index for the join condition, this becomes an costly operation. Although
those columns are usually primary and foreign key columns with
appropriate index and the join condition is usually a simple equality
match.


More information about the mapserver-users mailing list