B-tree和B+tree有顺序限制吗?

Is there is any limit for order in B-tree and B+tree?

B treeB+tree 中,如果我们将顺序指定为 5 那么我们可以将 4 keys5 pointers 存储在单个节点中对于那个节点。

在上述树中设置顺序有没有限制(或者)它的限制是无限的?

您可以使用 1 以上的任意顺序设计系统。如果阶数太大,很难在节点中找到键,树将只有 1 或 2 层深。

例如,如果订单是 1,000,000,那么在将任何节点拆分到树中的第三层之前,您需要获得一万亿条记录,并且您可能永远不会到达第四层。而且你必须在每个级别搜索一百万个键才能找到去哪里。即使使用二进制搜索,也最多有 20 个探针。

如果您选择较小的订单,那么您的搜索量就会较小。例如,如果阶数是 32,则每个级别最多有 5 次搜索,使用二进制搜索来查找密钥和下一步去哪里。与此相反,每次向下移动一个级别时,您都必须从磁盘读取一个新页面(如果它是磁盘支持的 B 树)。如果它在内存中,则成本非常低。

通常,您将B-树设计为具有固定的页面大小,并根据键的大小和指针的大小调整顺序。大钥匙给你小订单;小钥匙给你更大的订单。