我已经建立了自己的 b+tree 索引,其中包含插入/删除/搜索索引的所有操作。为了加速大型数据集的插入,我还想实现批量加载,以便能够对大型数据集进行试验。
我一直在尝试做的是对数据进行排序并开始在叶级别填充页面。必要时在上层复制或推送密钥。我总是在不同的高度跟踪指数的前沿。例如,如果我的索引高度为 3(根,包含内部节点和叶子层的一级),我只在内存中保留 3 页,一旦它们已满,或者没有更多数据,我将它们写入磁盘。
问题是要向每个页面写入多少数据以维持所有单个节点的页面限制。这些限制可以在这里找到。我找不到任何有用的资源,其中包含有关批量加载实施的详细信息或决定使用什么填充率以保证节点限制的好策略。
有任何想法吗?