PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Dane przestrzenne w PostgreSQL

Najpierw chciałbym wyjaśnić indeksy GiST:GiST jest właściwie frameworkiem do tworzenia indeksów dla nowych typów danych, a nie jakimś konkretnym schematem indeksowania. Ten framework jest używany do typów geometrycznych dostarczanych z Postgresem, ale jest również używany do indeksowania podobieństwa tekstu w standardowych kolumnach tekstowych z dopasowywaniem trygramów i oczywiście jest używany przez schematy indeksowania wielu zewnętrznych pakietów, wśród których możemy numer PostGIS.

To, czy standardowe typy danych geometrycznych będą działać dla Ciebie, czy potrzebujesz PostGIS, zależy wyłącznie od Twojej aplikacji.

PostGIS przechowuje dane geometryczne w kolumnie typu „geometria”; w tym możesz przechowywać mniej lub bardziej dowolne dane (punkty, okręgi, wielokąty, co masz). Indeksowanie jest szybkie i dość wyrafinowane:może wykonywać takie rzeczy, jak indeksowanie stratne za pomocą obwiedni dla złożonych kształtów, które w inny sposób nie są indeksowane w żaden rozsądny sposób. Obsługiwane są różne systemy odniesień przestrzennych, z automatyczną konwersją wyników zapytań. PostGIS obsługuje również standardowe w branży formaty OpenGIS, które mogą pomóc w udostępnianiu danych innym systemom.

Natomiast zbiór wewnętrznych typów geometrycznych i ich indeksów jest znacznie mniej wyrafinowany. Nie ma prawdziwego „ogólnego” typu geometrii; zamiast tego musisz wybrać, aby typ kolumny był punktem, linią, okręgiem, wielokątem lub tym, co masz; w przypadku kombinacji prawdopodobnie będziesz musiał użyć wielu kolumn. Indeksowanie nie jest tak dobre; nie można zindeksować tak wielu różnych typów kształtów (chociaż można dodać obsługę obwiedni, używając dla nich oddzielnej kolumny i ręcznie generując obwiedni), a indeksy prawdopodobnie nie są tak szybkie w niektórych sytuacjach. Z drugiej strony, jeśli wewnętrzne typy geometryczne spełniają Twoje potrzeby, zyskasz tę przewagę, że Twoja aplikacja jest łatwiej przenośna do innych systemów, które mają Postgres, ale nie mają zainstalowanego PostGIS.

Radzę pobawić się wewnętrznymi typami geometrycznymi i zobaczyć, jak dobrze to działa; jeśli zaczniesz mieć problemy, wypróbuj PostGIS.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Konwertuj tekst na Varchar

  2. JPA SequenceGenerator i GeneratedValue:właściwość nazwa/generator unikatowa tylko dla danej klasy?

  3. Jak używać SQLAlchemy do bezproblemowego dostępu do wielu baz danych?

  4. Czy można zdefiniować ograniczenie INITIALLY DEFERED za pomocą adnotacji Hibernate?

  5. BŁĄD:usuwanie w tabeli narusza ograniczenie klucza obcego. Identyfikator klucza jest nadal przywoływany z tabeli (wiele)