66.1. Введение#

66.1. Введение

66.1. Введение #

SP-GiST - это сокращение от пространственно-секционированного GiST. SP-GiST поддерживает секционированные деревья поиска, которые облегчают разработку широкого спектра различных несбалансированных структур данных, таких как квад-деревья, k-d деревья и радикс деревья (tries). Общей особенностью этих структур является то, что они повторно делят пространство поиска на секции, которые не обязательно имеют одинаковый размер. Поиски, которые хорошо соответствуют правилу секционирования, могут быть очень быстрыми.

Эти популярные структуры данных изначально были разработаны для использования в памяти. В оперативной памяти они обычно представляют собой набор динамически выделенных узлов, связанных указателями. Это не подходит для прямого хранения на диске, поскольку эти цепочки указателей могут быть достаточно длинными, что потребует слишком много обращений к диску. В отличие от этого, структуры данных, основанные на диске, должны иметь высокий коэффициент ветвления, чтобы минимизировать ввод-вывод. Задача, решаемая SP-GiST, заключается в том, чтобы отображать узлы дерева поиска на страницы диска таким образом, чтобы поиск требовал доступа только к нескольким страницам диска, даже если он проходит через множество узлов.

Подобно GiST, SP-GiST предназначен для разработки пользовательских типов данных с соответствующими методами доступа, экспертом в области данного типа данных, а не экспертом баз данных.

Некоторая приведенная информация взята из проекта индексирования SP-GiST университета Пёрдью веб-сайта. Реализация SP-GiST в PostgreSQL в основном поддерживается Федором Сигаевым и Олегом Бартуновым; более подробно см. web site.