Tengo una tabla espacial en una base de datos PostgreSQL / PostGIS. Cada fila en ella representa un polígono. Es de la siguiente forma:
+----+--------+
|gid | way |
+----+--------+
|241 | 01030..|
La columna geométrica es "camino" que contiene la geometría de un polígono. En WKT es: POLYGON (('....')). Estoy haciendo muchas consultas ST_Contains en esta tabla, para probar si dos polígonos están contenidos entre sí, por ejemplo:
Select ST_Contains(a.way, b.way) From table AS a, table AS b Where a.gid = 15 And b.gid = 16
Me preguntaba cómo acelerar esta consulta y agregué un índice espacial en la tabla:
CREATE INDEX table_way_gist ON table USING gist(way);
Pero en realidad no veo una aceleración. Creo el índice DESPUÉS de llenar la tabla con todos los polígonos ANTES de hacer las consultas ST_Contains. ¿Se debe agregar el índice antes de llenar una tabla? ¿Hay requisitos especiales en la tabla para trabajar con el índice? La proyección (cuadrícula) de la forma de columna geométrica se establece en 900913.
Estoy usando: psql (PostgreSQL) 9.1.4 / POSTGIS = "1.5.3"