B-Tree thường được sử dụng cho các chỉ mục cơ sở dữ liệu trên đĩa cứng, nhưng chúng có lợi thế ngay cả khi là cấu trúc dữ liệu trong bộ nhớ, với sự thừa kế bộ nhớ hiện đại với nhiều lớp bộ đệm và với bộ nhớ ảo. Ngay cả khi bộ nhớ ảo trên SSD, điều đó sẽ không thay đổi.
Tôi sử dụng một thư viện cây đa đường kiểu B + trong bộ nhớ mà tôi đã viết khá nhiều trong C ++. Nó có thể có lợi thế về hiệu suất - lý do ban đầu được viết là để cố gắng sử dụng bộ đệm tốt hơn - nhưng tôi phải thừa nhận rằng nó thường không hoạt động theo cách đó. Vấn đề là sự đánh đổi, có nghĩa là các mục phải di chuyển xung quanh trong các nút khi chèn và xóa, điều này không xảy ra đối với cây nhị phân. Ngoài ra, một số hack mã hóa cấp thấp mà tôi đã sử dụng để tối ưu hóa nó - tốt, có lẽ chúng gây nhầm lẫn và đánh bại trình tối ưu hóa, sự thật đã nói.
Dù sao, ngay cả khi cơ sở dữ liệu của bạn được lưu trữ trên ổ SSD, đó vẫn là một thiết bị lưu trữ hướng khối và vẫn có lợi thế khi sử dụng B-Plants và các cây đa đường khác.
NHƯNG khoảng mười năm trước, các thuật toán và cấu trúc dữ liệu lãng quên bộ nhớ cache đã được phát minh. Chúng không chú ý đến kích thước và cấu trúc của bộ đệm, v.v. - chúng làm cho (không có triệu chứng) sử dụng tốt nhất có thể của bất kỳ chế độ thừa kế bộ nhớ. Cây B cần được "điều chỉnh" theo một kiểu thừa kế bộ nhớ cụ thể để sử dụng tốt nhất (mặc dù chúng hoạt động khá tốt đối với một phạm vi biến thể khá rộng).
Cấu trúc dữ liệu không biết bộ nhớ cache thường không được nhìn thấy trong tự nhiên, nếu có, nhưng đến lúc chúng có thể làm cho cây nhị phân trong bộ nhớ thông thường trở nên lỗi thời. Và họ cũng có thể chứng minh giá trị đối với đĩa cứng và SSD, vì họ không quan tâm kích thước trang bộ nhớ cache kích thước cụm hoặc đĩa cứng là gì.
Bố cục của Van Emde Boas rất quan trọng trong cấu trúc dữ liệu bị lãng quên trong bộ nhớ cache.
Khóa học thuật toán MIT OpenC thảoware bao gồm một số phạm vi bảo hiểm của các cấu trúc dữ liệu lãng quên bộ nhớ cache.