1. Нелистовые узлы имеют только функцию индексирования, то есть нелистовые узлы могут хранить только ключ, а не значение.
2. Все конечные узлы дерева образуют упорядоченный связанный список, и все данные можно просматривать в порядке ключевой сортировки.
Если параметр M выбран равным 5, то каждый узел содержит до 4 пар ключ-значение. Давайте возьмем в качестве примера дерево B+ 5-го порядка, чтобы увидеть хранилище данных дерева B+.
(a) Вставьте 5 в пустое дерево
(б) Продолжайте вставлять 8, 10, 15.
(c) Продолжайте вставлять 16
(d) Продолжайте вставлять 17
(e) Продолжайте вставлять 18
(f) Продолжайте вставлять 6,9,19,20,21,22.
(e) Продолжайте вставлять 7
Преимущества деревьев B+:
1. Поскольку дерево B+ не содержит реальных данных о нелистовых узлах и используется только как индекс, оно может хранить больше ключей в той же памяти.
2. Все листовые узлы дерева B+ связаны, поэтому для обхода всего дерева требуется только один линейный обход листовых узлов. А поскольку данные расположены последовательно и связаны, их легко находить и искать по интервалам. B-дерево требует рекурсивного обхода каждого уровня.
Преимущества B-деревьев:
Поскольку каждый узел B-дерева содержит ключ и значение, когда мы ищем значение на основе ключа, нам нужно только найти местоположение ключа, чтобы найти значение. Однако дерево B+ хранит только данные. Листовые узлы Каждый раз, когда выполняется поиск по индексу, вы должны по одному найти максимальную глубину дерева, которая является глубиной листовых узлов, чтобы найти значение.
Можно сказать, что при работе базы данных операция запроса является наиболее частой операцией. Поэтому при проектировании базы данных необходимо учитывать эффективность запроса. Во многих базах данных для повышения эффективности используются деревья B+. запроса; При работе с базой данных, чтобы повысить эффективность запросов, мы можем создать индекс на основе определенного поля определенной таблицы, что может повысить эффективность запроса. Фактически, этот индекс реализуется с помощью такой структуры данных, как. дерево B+.
Запрос индекса первичного ключа не установлен
Выполните select * from user, где id=18. Вам нужно начать с первой части данных и выполнять запрос до 6-й части. Когда вы найдете id=18, вы можете запросить целевой результат. Всего требуется 6 сравнений;
Создать запрос индекса первичного ключа
Интервальный запрос
осуществлять select * from user where id>=10 and id, поэтому нам нужно только найти листовой узел с идентификатором 12 и последовательно проверить его, просматривая связанный список, что очень эффективно.