在磁盘上使用树数据结构的一个主要实际困难是,对于天真的二进制树,数据将“相隔很远”,并且尝试访问此数据可能会导致thrashing作为您的硬盘尝试连续访问磁盘上的不同位置。
此问题的经典解决方案是使用B-trees。 B树背后的基本思想是从磁盘读取是昂贵的,所以你应该尽可能少地使用它们。这是通过使用大节点来完成的; B树可以有 m 个孩子,而不是只存储两个孩子。这极大地增加了每个节点的熵,这意味着访问数据所需的读取次数要少得多。
可以找到更多关于B树的阅读here,这些图片在我看来特别有用,并且可以找到B树上的几个实现here。