Ciekawi mnie, w jaki sposób wewnętrzne struktury danych i mechanizm przechowywania przestrzennego indeksu GiST w Postgis. W Oracle lubiłem pokazywać, w jaki sposób indeksy SDO były „tylko kolejną tabelą” oraz w jaki sposób poziomy były atrybutami indeksów, a ramki indeksowanych geometrii były przechowywane jako obiekty BLOB (które można wyodrębnić). W jaki sposób Postgis przechowuje indeksy i gdzie?
Tabele systemowe http://www.postgresql.org/docs/8.3/static/catalogs.html mogą być używane do identyfikowania indeksów, ale nie wiem, jak uzyskać dostęp do rzeczywistej pamięci (jeśli rzeczywiście są to tabele)
postgis
postgresql
spatial-index
MartinT
źródło
źródło
Odpowiedzi:
Jak wspomina Craig, indeksy przestrzenne to nie tylko kolejna tabela. Zamiast tego PostGis używa GiST jako strukturalnego fundamentu do przechowywania szczegółów skrzynki. Tak, jest to (przy użyciu ustawień domyślnych) inne i bardziej wydajne i mniej precyzyjne niż B-Drzewa lub R-Drzewa .... ale możesz określić parametry, które uczynią indeksy GiST podobnymi do indeksów przestrzennych z innej pamięci.
Oto dokumentacja dotycząca sposobu pracy z nimi (w tym ich rozszerzania).
Zakopać.
źródło