Ho una tabella spaziale in un database PostgreSQL / PostGIS. Ogni riga in esso rappresenta un poligono. È della seguente forma:
+----+--------+
|gid | way |
+----+--------+
|241 | 01030..|
La colonna geometrica è "way" che contiene la geometria di un poligono. In WKT è: POLYGON (('....')). Sto eseguendo molte query ST_Contains su questa tabella, per verificare se due poligoni sono contenuti l'uno nell'altro, ad esempio:
Select ST_Contains(a.way, b.way) From table AS a, table AS b Where a.gid = 15 And b.gid = 16
Mi chiedevo come velocizzare questa query e ho aggiunto un indice spaziale sul tavolo:
CREATE INDEX table_way_gist ON table USING gist(way);
Ma in realtà non vedo una velocità. Creo l'indice DOPO aver riempito la tabella con tutti i poligoni PRIMA di eseguire le query ST_Contains. L'indice deve essere aggiunto prima di riempire una tabella? Esistono requisiti speciali sulla tabella per lavorare con l'indice? La proiezione (srid) della via della colonna geometrica è impostata su 900913.
Sto usando: psql (PostgreSQL) 9.1.4 / POSTGIS = "1.5.3"