Мне интересно, как работают внутренние структуры данных и механизм хранения пространственного индекса GiST в Postgis. В Oracle мне нравилось показывать, как индексы SDO были «просто еще одной таблицей» и как уровни были атрибутами индексов, а bbox-ы индексированных геометрий сохранялись в виде больших двоичных объектов (которые можно было извлечь). Как Postgis хранит индексы и где?
Системные таблицы http://www.postgresql.org/docs/8.3/static/catalogs.html можно использовать для идентификации индексов, но я не знаю, как получить доступ к фактическому хранилищу (если они действительно являются таблицами)
postgis
postgresql
spatial-index
MartinT
источник
источник
Ответы:
Как упоминает Крейг, пространственные индексы - это не просто еще одна таблица. Вместо этого PostGis использует GiST в качестве структурной основы для хранения деталей bbox. Да, это (при использовании значений по умолчанию) отличается и является более эффективным и менее точным, чем B-деревья или R-деревья .... но вы можете указать параметры, которые делают индексы GiST похожими на пространственные индексы из другого хранилища.
Вот документация о том, как с ними работать (включая расширение).
Копать в.
источник