Frage

PostgreSQL unterstützt eine Vielzahl von aus der Box, zusammen mit vielen geometrischen Operatoren und GiST Indizes scheint die räumliche Indizierung von Daten anbieten zu können.

Und dann gibt es auch PostGIS , die eine Erweiterung von PG ist.

Was ist der Unterschied zwischen dem integrierten räumlich Unterstützung in PG und PostGIS?

Wenn meine Anwendung benötigt geografische Koordinaten zu speichern (Punkte, Flächen, Polygone) und führen Sie dann effizient Abfragen (wie Point-in-Polygon, Polygon-Kreuzung), muß ich PostGIS oder kann ich das (wohl) bequemen und einfacher eingebauten Datentypen / Syntax?

War es hilfreich?

Lösung

Zuerst würde Ich mag GiST Indizes klären: GiST ist eigentlich ein Rahmen für den Indizes für neue Datentypen, keine bestimmte Indexierschema selbst zu schaffen. Dieser Rahmen geschieht für die geometrischen Typen verwendet werden, die mit Postgres kommen, aber es ist auch für einen Trigramm-matching Text Ähnlichkeitsindex auf Standard-Textspalten verwendet, und natürlich wird durch die Index-Schemata von vielen externen Paketen verwendet, unter denen wir können, Nummer PostGIS.

Ob die geometrischen Standarddatentypen für Sie arbeiten, oder Sie müssen PostGIS ganz auf Ihrer Anwendung ab.

PostGIS speichern Geometriedaten in einer Säule vom Typ „geometry“; in diesem können Sie speichern mehr oder weniger beliebige Daten (Punkte, Kreise, Polygone, was-haben-Sie). Die Indizierung ist schnell und ziemlich anspruchsvoll: es Dinge wie verlustbehaftete Indizierung Begrenzungskästen für komplexe Formen tun, die sonst nicht Wende in jeder angemessenen Art und Weise sind. Unterschiedliche räumliche Bezugssysteme unterstützt werden, mit einem automatischen Umwandlung der Ergebnisse der Abfragen. PostGIS unterstützt auch Industriestandard OpenGIS-Formate, die mit dem Datenaustausch mit anderen Systemen helfen kann.

Im Gegensatz dazu die Menge der internen geometrischen Typen und deren Indizes ist viel weniger anspruchsvoll. Es gibt keinen wirklichen „generic“ Geometrie-Typ; stattdessen müssen Sie wählten den Typ einer Spalte zu haben, ein Punkt, Linie, Kreis, Polygon, oder was-haben-Sie; für Kombinationen, werden Sie wahrscheinlich mehrere Spalten verwenden. Die Indizierung ist nicht so gut; nicht so viele verschiedene Arten von Formen können indiziert werden und die Indizes sind wahrscheinlich nicht so schnell in einigen Situationen (obwohl man durch die Verwendung einer separaten Spalte für sie und die Erzeugung der Begrenzungsrahmen manuell Begrenzungsbox Unterstützung hinzufügen könnte). Auf der anderen Seite, wenn die internen geometrischen Typen Ihre Bedürfnisse zu füllen, erhalten Sie den Vorteil, dass Ihre Anwendung leichter auf andere Systeme portierbar ist, das Postgres aber nicht PostGIS installiert haben.

Mein Rat wäre, mit den inneren geometrischen Typen zu spielen, um zu sehen, wie gut das funktioniert für Sie heraus; wenn Sie laufen in Probleme beginnen, versuchen, PostGIS.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top