2014-07-28 2 views
3

Я узнаю о внутренних функциях postgresql, и мне интересно, или postgresql Индекс B-дерева на самом деле является классическим B-деревом или деревом B +? Чтобы указать на это, это означает, что узлы содержат только пары ключей или ключ-значение?B + дерево или B-дерево

ответ

5

B-деревья. Только клавиши. Точка индексов - это хранение ключей для начала. Данные лежат в таблицах, которые являются логическими кучами. Вот related chapter on Wikipedia.

Физическое хранилище индексов и таблиц B-дерева в остальном очень похоже. Они используют одни и те же страницы данных с главным образом тем же самым макетом страницы. More in the manual.

+0

но если db хранит только ключи, это будет B +? – Borys

+3

Дерево b + будет хранить данные в листьях. Различие между деревом b и b + не имеет большого значения для индексов. Индекс и таблица вместе образуют специальную форму дерева b +, если хотите. Сам индекс является всего лишь b-деревом. –

+0

@ErwinBrandstetter Вы имеете в виду, что индекс в postgres - это просто b-дерево, чей листовой узел содержит указатели на фактические данные, хранящиеся на диске. –

 Смежные вопросы

  • Нет связанных вопросов^_^