Я читал сегодня об индексах GIN как об альтернативе индексам дерева B +, и нашел много документации по этой теме .
Тем не менее, я попытался понять, как PostgreSQL реализует многоколоночные индексы GIN, и я должен признать, что на данный момент это гораздо более размыто для меня. Документация гласит только:
Многоколонные индексы GIN реализуются путем построения единого B-дерева над составными значениями (номер столбца, значение ключа). Значения ключей для разных столбцов могут быть разных типов.
Я не совсем понимаю, как именно выглядит алгоритм поиска, особенно для частичных совпадений с несколькими столбцами.
У кого-нибудь есть ссылки на подробное описание архитектуры или какие-то дополнительные подробности о его внутренностях?