PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Dados espaciais no PostgreSQL


Primeiro, gostaria de esclarecer os índices GiST:GiST é na verdade uma estrutura para criar índices para novos tipos de dados, não qualquer esquema de indexação específico. Esse framework é usado para os tipos geométricos que vêm com o Postgres, mas também é usado para um índice de similaridade de texto de correspondência de trigramas em colunas de texto padrão e, claro, é usado pelos esquemas de indexação de muitos pacotes externos, entre os quais podemos número PostGIS.

Se os tipos de dados geométricos padrão funcionarão para você ou se você precisa do PostGIS depende inteiramente da sua aplicação.

PostGIS armazena dados geométricos em uma coluna do tipo "geometria"; neste você pode armazenar dados mais ou menos arbitrários (pontos, círculos, polígonos, o que você tem). A indexação é rápida e bastante sofisticada:ela pode fazer coisas como indexação com perdas usando caixas delimitadoras para formas complexas que, de outra forma, não são indexáveis ​​de maneira razoável. São suportados diferentes sistemas de referência espacial, com conversão automática dos resultados das consultas. O PostGIS também suporta formatos OpenGIS padrão da indústria, que podem ajudar no compartilhamento de dados com outros sistemas.

Em contraste, o conjunto de tipos geométricos internos e seus índices é muito menos sofisticado. Não existe um tipo de geometria "genérica" ​​real; em vez disso, você deve escolher que o tipo de coluna seja um ponto, uma linha, um círculo, um polígono ou o que for; para combinações, você provavelmente terá que usar várias colunas. A indexação não é tão boa; não tantos tipos diferentes de formas podem ser indexados (embora você possa adicionar suporte a caixa delimitadora usando uma coluna separada para eles e gerando as caixas delimitadoras manualmente) e os índices provavelmente não são tão rápidos em algumas situações. Por outro lado, se os tipos geométricos internos preencherem suas necessidades, você ganha a vantagem de que seu aplicativo é mais facilmente portável para outros sistemas que tenham Postgres, mas não PostGIS instalado.

Meu conselho seria brincar com os tipos geométricos internos e ver como isso funciona para você; se você começar a ter problemas, experimente o PostGIS.