sql >> Base de Datos >  >> RDS >> PostgreSQL

Datos espaciales en PostgreSQL

Primero, me gustaría aclarar los índices de GiST:GiST es en realidad un marco para crear índices para nuevos tipos de datos, no un esquema de indexación en particular. Este marco se usa para los tipos geométricos que vienen con Postgres, pero también se usa para un índice de similitud de texto de coincidencia de trigramas en columnas de texto estándar y, por supuesto, lo usan los esquemas de indexación de muchos paquetes externos, entre los cuales podemos número PostGIS.

Que los tipos de datos geométricos estándar funcionen para usted o que necesite PostGIS depende completamente de su aplicación.

PostGIS almacena datos geométricos en una columna de tipo "geometría"; en este puedes almacenar datos más o menos arbitrarios (puntos, círculos, polígonos, lo que tengas). La indexación es rápida y bastante sofisticada:puede hacer cosas como la indexación con pérdida utilizando cuadros delimitadores para formas complejas que de otro modo no son indexables de ninguna manera razonable. Se admiten diferentes sistemas de referencia espacial, con conversión automática de los resultados de las consultas. PostGIS también es compatible con los formatos OpenGIS estándar de la industria, lo que puede ayudar a compartir datos con otros sistemas.

En cambio, el conjunto de tipos geométricos internos y sus índices es mucho menos sofisticado. No existe un tipo de geometría "genérica" ​​real; en su lugar, debe elegir que el tipo de columna sea un punto, una línea, un círculo, un polígono o lo que sea; para las combinaciones, probablemente tendrá que usar varias columnas. La indexación no es tan buena; no se pueden indexar tantos tipos diferentes de formas (aunque podría agregar compatibilidad con cuadros delimitadores usando una columna separada para ellos y generando los cuadros delimitadores manualmente) y los índices probablemente no sean tan rápidos en algunas situaciones. Por otro lado, si los tipos geométricos internos satisfacen sus necesidades, obtiene la ventaja de que su aplicación es más fácil de trasladar a otros sistemas que tienen instalado Postgres pero no PostGIS.

Mi consejo sería jugar con los tipos geométricos internos y ver qué tan bien te funciona; si comienza a tener problemas, pruebe PostGIS.