Pergunta

PostgreSQL suporta uma variedade de tipos geométricos fora do caixa, junto com lotes de operadores geométricos e índices GiST que parecem oferecer indexação espacial dos dados.

E depois há também PostGIS , que é uma extensão do PG.

Qual é a diferença entre o suporte embutido espacial em PG e PostGIS?

Se minhas necessidades de aplicação para armazenar coordenadas geográficas (pontos, áreas, polígonos) e, em seguida, de forma eficiente que consultas (como point-in-polígono, polígono intersecção), eu preciso PostGIS ou posso usar o (discutivelmente) mais conveniente e mais simples built-in tipos de dados / sintaxe?

Foi útil?

Solução

Primeiro eu gostaria de esclarecer índices GiST: essência é realmente uma estrutura para a criação de índices para os novos tipos de dados, e não qualquer esquema de indexação especial em si. Este quadro passa a ser usado para os tipos geométricos que vêm com Postgres, mas também é usado por um trigrama de correspondência de índice de texto similaridade em colunas de texto padrão, e, claro, é usada pelos regimes de indexação dos muitos pacotes externos, entre os quais podemos número PostGIS.

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

lojas PostGIS dados geométricos em uma coluna do tipo "geometria"; Neste você pode armazenar dados de forma mais ou menos arbitrárias (pontos, círculos, polígonos, que-ter-você). A indexação é rápido e bastante sofisticado: ele pode fazer coisas como indexação com perdas utilizando caixas delimitadoras para formas complexas que não são indexáveis ??de qualquer forma razoável de outra forma. Diferentes sistemas de referência espacial são suportados, com a conversão automática dos resultados de consultas. PostGIS também suporta formatos de OpenGIS padrão da indústria, o que pode ajudar com o compartilhamento de dados com outros sistemas.

Em contraste, o conjunto de tipos geométricos internos e seus índices é muito menos sofisticado. Não há nenhum tipo de geometria "genérico" real; em vez disso você tem que optar por ter um tipo de coluna ser um ponto, linha, círculo, polígono, ou que-ter-lhe; para combinações, você provavelmente terá que usar várias colunas. A indexação não é tão bom; não como muitos tipos diferentes de formas podem ser indexados (embora você poderia adicionar suporte 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ápidas em algumas situações. Por outro lado, se os tipos geométricos internos preencher suas necessidades, você ganha a vantagem de que o seu pedido é mais facilmente portável para outros sistemas que têm Postgres, mas não PostGIS instalado.

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top