sql >> Database >  >> RDS >> PostgreSQL

Ruimtelijke gegevens in PostgreSQL

Eerst wil ik GiST-indexen verduidelijken:GiST is eigenlijk een raamwerk voor het maken van indexen voor nieuwe gegevenstypen, niet een bepaald indexeringsschema zelf. Dit raamwerk wordt toevallig gebruikt voor de geometrische typen die bij Postgres worden geleverd, maar het wordt ook gebruikt voor een trigram-overeenkomstige tekstovereenkomstindex op standaard tekstkolommen, en wordt natuurlijk gebruikt door de indexeringsschema's van veel externe pakketten, waaronder we kunnen nummer PostGIS.

Of de standaard geometrische datatypes voor u zullen werken of dat u PostGIS nodig heeft, hangt volledig af van uw toepassing.

PostGIS slaat geometrische gegevens op in een kolom van het type "geometrie"; hierin kun je min of meer willekeurige gegevens opslaan (punten, cirkels, polygonen, wat-heb-jij). Het indexeren is snel en behoorlijk geavanceerd:het kan dingen doen als verliesgevend indexeren met behulp van begrenzingsvakken voor complexe vormen die anders op geen enkele redelijke manier kunnen worden geïndexeerd. Verschillende ruimtelijke referentiesystemen worden ondersteund, met automatische conversie van de resultaten van zoekopdrachten. PostGIS ondersteunt ook industriestandaard OpenGIS-indelingen, wat kan helpen bij het delen van gegevens met andere systemen.

Daarentegen is de reeks interne geometrische typen en hun indexen een stuk minder geavanceerd. Er is geen echt "generieke" geometrietype; in plaats daarvan moet je ervoor kiezen om het type van een kolom een ​​punt, lijn, cirkel, veelhoek of wat dan ook te hebben; voor combinaties zul je waarschijnlijk meerdere kolommen moeten gebruiken. De indexering is niet zo goed; er kunnen niet zoveel verschillende soorten vormen worden geïndexeerd (hoewel u ondersteuning voor begrenzingsvakken kunt toevoegen door er een aparte kolom voor te gebruiken en de begrenzingsvakken handmatig te genereren) en de indexen zijn in sommige situaties waarschijnlijk niet zo snel. Aan de andere kant, als de interne geometrische typen aan uw behoeften voldoen, heeft u het voordeel dat uw toepassing gemakkelijker overdraagbaar is naar andere systemen waarop wel Postgres is geïnstalleerd, maar PostGIS niet.

Mijn advies zou zijn om te spelen met de interne geometrische typen en te kijken hoe goed dat voor je werkt; als je problemen begint te krijgen, probeer dan PostGIS.




  1. Mogelijk om het PostgreSQL-tabelontwerp te wijzigen met LibreOffice Base?

  2. Heeft T-SQL een aggregatiefunctie om strings samen te voegen?

  3. gegevens van sql weergeven door op svg-kaart te klikken

  4. Is er een prestatievermindering als er te veel kolommen in een tabel zijn?