B-Trees paling sering digunakan untuk indeks basis data pada hard disk, tetapi mereka memiliki kelebihan bahkan sebagai struktur data dalam memori, mengingat hirarki memori modern dengan beberapa lapisan cache dan dengan memori virtual. Bahkan jika memori virtual ada pada SSD, itu tidak akan berubah.
Saya menggunakan perpustakaan multiway tree B + -style di memori yang saya tulis cukup banyak di C ++. Ini dapat memiliki keuntungan kinerja - alasannya pada awalnya ditulis adalah untuk mencoba menggunakan cache lebih baik - tetapi saya harus mengakui itu sering tidak berfungsi seperti itu. Masalahnya adalah trade-off yang berarti item harus bergerak dalam node pada sisipan dan penghapusan, yang tidak terjadi pada pohon biner. Juga, beberapa hacking coding tingkat rendah yang saya gunakan untuk mengoptimalkannya - yah, mereka mungkin membingungkan dan mengalahkan optimizer, kebenaran mengatakan.
Bagaimanapun, bahkan jika basis data Anda disimpan pada SSD, itu masih merupakan perangkat penyimpanan berorientasi blok, dan masih ada keuntungan menggunakan B-Trees dan pohon multi-jalur lainnya.
TETAPI sekitar sepuluh tahun yang lalu, algoritma cache-lupa dan struktur data diciptakan. Ini tidak menyadari ukuran dan struktur cache dll - mereka membuat (asymptotically) penggunaan sebaik mungkin dari setiap hirarki memori. B-Trees perlu "disetel" ke hirarki memori tertentu untuk memanfaatkan yang terbaik (meskipun mereka bekerja cukup baik untuk variasi yang cukup luas).
Cache lupa struktur data belum sering terlihat di alam liar, jika sama sekali, tapi sudah waktunya mereka membuat pohon biner dalam memori yang biasa menjadi usang. Dan mereka juga terbukti bermanfaat untuk hard disk dan SSD juga, karena mereka tidak peduli apa ukuran halaman cache-size atau hard-disk.
Tata letak Van Emde Boas sangat penting dalam struktur data yang tidak memperhatikan cache.
Kursus algoritma OpenCourseware MIT mencakup beberapa cakupan struktur data yang tidak diketahui oleh cache.