Я узнаю о внутренних функциях postgresql, и мне интересно, или postgresql Индекс B-дерева на самом деле является классическим B-деревом или деревом B +? Чтобы указать на это, это означает, что узлы содержат только пары ключей или ключ-значение?B + дерево или B-дерево
3
A
ответ
5
B-деревья. Только клавиши. Точка индексов - это хранение ключей для начала. Данные лежат в таблицах, которые являются логическими кучами. Вот related chapter on Wikipedia.
Физическое хранилище индексов и таблиц B-дерева в остальном очень похоже. Они используют одни и те же страницы данных с главным образом тем же самым макетом страницы. More in the manual.
но если db хранит только ключи, это будет B +? – Borys
Дерево b + будет хранить данные в листьях. Различие между деревом b и b + не имеет большого значения для индексов. Индекс и таблица вместе образуют специальную форму дерева b +, если хотите. Сам индекс является всего лишь b-деревом. –
@ErwinBrandstetter Вы имеете в виду, что индекс в postgres - это просто b-дерево, чей листовой узел содержит указатели на фактические данные, хранящиеся на диске. –