TGViewer
METANIT.COM METANIT.COM @devnull22 · 5.81K subscribers
Post #1658 2.07K
B+ trees (Деревья B+) и их применение в базах данных

Деревья B+ являются наиболее широко используемой структурой данных для индексирования в современных реляционных системах баз данных. Они специально разработаны для эффективного хранения и извлечения больших объемов данных на диске, обеспечивая высокую производительность поиска, вставки, удаления и запросов диапазона.
Основные реляционные базы данных, такие как MySQL (InnoDB), PostgreSQL, SQL Server и Oracle, используют деревья B+ для первичных и вторичных индексов, что делает их незаменимыми для масштабируемых, высокопроизводительных систем баз данных.

КЛЮЧЕВЫЕ ХАРАКТЕРИСТИКИ

- Все данные в листовых узлах
В B+ дереве все фактические данные записей (или указатели на полные записи) хранятся исключительно в листовых узлах. Внутренние узлы хранят только ключи и указатели на дочерние узлы, облегчая навигацию.

- Сбалансированная, многоуровневая структура
B+ деревья всегда сбалансированы по высоте. Все листовые узлы находятся на одной глубине, обеспечивая сложность O(log n) для операций поиска, вставки и удаления, независимо от размера базы данных.

- Эффективные запросы диапазона и упорядоченные запросы
Листовые узлы связаны вместе в двунаправленном списке, что позволяет быстро выполнять последовательный доступ для запросов диапазона, таких как BETWEEN, ORDER BY и сканирование индексов.

- Высокая степень заполнения
Каждый узел может содержать много ключей (высокая степень заполнения), что минимизирует высоту дерева и уменьшает дисковый ввод-вывод за счет максимизации данных на чтение.

- Оптимизация диска
B+ деревья разработаны для соответствия размерам блоков диска, что уменьшает количество обращений к диску, необходимых для операций.


ПОЧЕМУ B+ ДЕРЕВЬЯ ПРЕДПОЧИТАЮТСЯ В БАЗАХ ДАННЫХ?

- Сбалансированная структура обеспечивает последовательный доступ.

- Высокая степень заполнения соответствует размерам страниц диска, уменьшая ввод-вывод.

- Связанные листья делают сканирование диапазона быстрым.

- Узлы могут быть разделены/объединены с минимальным блокированием, поддерживая высококонкурентные среды.

ИСПОЛЬЗОВАНИЕ В ОСНОВНЫХ СИСТЕМАХ БАЗ ДАННЫХ

- MySQL (InnoDB)
Кластерный индекс (первичный ключ): хранит всю строку данных в B+ дереве.
Вторичные индексы: B+ деревья содержат индексированные столбцы и указатели на первичный ключ.

- PostgreSQL
Тип индекса по умолчанию (btree) для большинства столбцов.
Используется для уникальных и неуникальных индексов.
Поддерживает эффективные запросы на равенство и диапазон.

- СУБД Oracle
B+ деревья используются для стандартных индексов (одиночные, составные, основанные на функциях).
Организованные таблицы индексов (IOT) хранят все данные в листовых блоках B+ дерева.
Листовые блоки связаны для сканирования диапазона.

#database
  • 🔥 9
  • 👍 3
  • 👏 1
  • 🏆 1
More from @devnull22
  1. Mar 19, 2026Добавил в руководство по JavaScript главу про работу с датами и временем с помощью Tempora…
  2. Mar 19, 2026Роскомнадзор перестал полностью справляться с блокировками в интернете Роскомнадзор (РКН)…
  3. Mar 18, 2026Минцифры опубликовало законопроект о государственном регулировании ИИ. Закон должен начать…
  4. Mar 18, 2026Microsoft призвала разработчиков создавать ИИ-приложения в Electron на Windows 11 Microsof…
  5. Mar 18, 2026Oracle анонсировала проект Detroit, который будет развиваться в составе OpenJDK и нацелен…
  6. Mar 17, 2026Вышла новая версия платформы Java - JDK 26. JDK 26 — краткосрочная версия с поддержкой Pre…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →