Eu tenho uma tabela espacial em um banco de dados PostgreSQL / PostGIS. Cada linha nela representa um polígono. É da seguinte forma:
+----+--------+
|gid | way |
+----+--------+
|241 | 01030..|
A coluna geométrica é "caminho", que contém a geometria de um polígono. No WKT é: POLYGON (('....')). Estou fazendo muitas consultas ST_Contains nesta tabela, para testar se dois polígonos estão contidos um no outro, por exemplo:
Select ST_Contains(a.way, b.way) From table AS a, table AS b Where a.gid = 15 And b.gid = 16
Eu queria saber como acelerar esta consulta e adicionou um índice espacial na tabela:
CREATE INDEX table_way_gist ON table USING gist(way);
Mas, na verdade, não vejo velocidade. Eu crio o índice APÓS Preencher a tabela com todos os polígonos ANTES de fazer as consultas ST_Contains. O índice deve ser adicionado antes de preencher uma tabela? Existem requisitos especiais na tabela para trabalhar com o índice? A projeção (srid) do caminho da coluna geométrica é definida como 900913.
Estou usando: psql (PostgreSQL) 9.1.4 / POSTGIS = "1.5.3"