B-Trees найчастіше використовуються для індексів баз даних на жорсткому диску, але вони мають переваги навіть як структура даних в пам'яті, враховуючи сучасну герархію пам’яті з кількома шарами кешу та з віртуальною пам’яттю. Навіть якщо віртуальна пам'ять знаходиться на SSD, це не зміниться.
Я використовую багатосторонню бібліотеку дерев B + -style, про яку я багато писав у C ++. Це може мати переваги щодо продуктивності - тому, що спочатку було написано, було спробувати використовувати кеш краще - але я мушу визнати, що часто це не працює. Проблема полягає в компромісі, що означає, що елементи повинні переміщатися в межах вузлів на вставках і видаленнях, що не відбувається для бінарних дерев. Крім того, деякі з хакінгу низького рівня, які я використовував для його оптимізації - ну, вони, мабуть, плутають і перемагають оптимізатор, правда розповіла.
У будь-якому випадку, навіть якщо ваші бази даних зберігаються на SSD, це все-таки блок пам'яті, орієнтований на блок, і все-таки є перевагою використання B-Trees та інших дерев багатоповерхівок.
АЛЕ близько десяти років тому були винайдені кешовані алгоритми та структури даних. Вони не звертають уваги на розмір та структуру кешів тощо - вони дозволяють (асимптотично) найкращим чином використовувати будь-яку герархію пам'яті. Дерева B повинні бути "налаштовані" на певну спадщину пам'яті, щоб найкраще використовувати (хоча вони працюють досить добре для досить широкого кола варіацій).
Інформація про кеш-пам'ять, що не знає кеш, ще часто не спостерігається в дикій природі, якщо вона взагалі є, але це час, можливо, цілком застаріють звичайні бінарні дерева пам'яті. І вони також можуть виявитися корисними і для жорстких дисків, і для жорстких дисків, оскільки їм не байдуже, який розмір сторінки кеша розміру або жорсткого диска.
Макет Ван Емде Боаса дуже важливий у структурах даних, що не захищені кешем.
Курс алгоритмів алгоритмів MIT OpenCourseware включає деяке висвітлення структури керованих даних із кешу.