Tengo una tabla espacial en una base de datos postgres/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 lo es: POLÍGONO(('....')). Estoy haciendo un montón de consultas ST_Contains en esta tabla, para comprobar si dos polígonos están contenidos el uno en el otro, 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 añadí un índice espacial en la mesa:
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. ¿Debería añadirse el índice antes de llenar una tabla? ¿Hay requisitos especiales en la tabla para trabajar con el índice? La proyección (srid) del camino de la columna geométrica se establece en 900913.
Estoy usando: psql (PostgreSQL) 9.1.4 / POSTGIS="1.5.3"
Thx por ayuda.