B-Drzewa są najczęściej używane do indeksowania baz danych na dysku twardym, ale mają zalety nawet jako struktura danych w pamięci, biorąc pod uwagę nowoczesną heirarchię pamięci z wieloma warstwami pamięci podręcznej i pamięcią wirtualną. Nawet jeśli pamięć wirtualna znajduje się na dysku SSD, to się nie zmieni.
Używam wbudowanej w drzewo biblioteki wielodrogowej w stylu B +, którą sporo napisałem w C ++. To może mieć przewagę wydajności - powodem był pierwotnie napisany było spróbować użyć pamięci podręcznej lepiej - ale muszę przyznać często nie działa w ten sposób. Problemem jest kompromis, który oznacza, że elementy muszą się przemieszczać w obrębie węzłów podczas wstawiania i usuwania, co nie zdarza się w przypadku drzew binarnych. Ponadto, niektóre z niskopoziomowych hacków kodujących, których użyłem do optymalizacji - cóż, prawdopodobnie mylą i pokonują optymalizator, prawdę mówiąc.
W każdym razie, nawet jeśli twoje bazy danych są przechowywane na dysku SSD, wciąż jest to blokowe urządzenie magazynujące, a nadal istnieje zaleta korzystania z B-Drzewa i innych drzew wielodrogowych.
ALE około dziesięć lat temu wymyślono algorytmy i struktury danych nieuwzględniające pamięci podręcznej. Są one nieświadome wielkości i struktury pamięci podręcznej itp. - sprawiają (asymptotycznie) najlepsze możliwe wykorzystanie każdej dziedziczności pamięci. B-Drzewa muszą zostać „dostrojone” do konkretnej dziedziczności pamięci, aby jak najlepiej wykorzystać (chociaż działają dość dobrze w przypadku dość szerokiego zakresu odmian).
Struktury danych niepamięci w pamięci podręcznej nie są jeszcze często spotykane na wolności, ale w tym czasie mogą sprawić, że zwykłe drzewa binarne w pamięci staną się przestarzałe. Mogą się również okazać przydatne w przypadku dysków twardych i dysków SSD, ponieważ nie dbają o rozmiar strony w klastrze lub w pamięci podręcznej dysku twardego.
Układ Van Emde Boas jest bardzo ważny w strukturach danych nieobsługujących pamięci podręcznej.
Kurs algorytmów MIT OpenCourseware obejmuje pewien zakres struktur danych niepamięci cache.