B树和B +树的订单是否有限制?

时间:2015-01-21 04:30:32

标签: c tree b-tree

B treeB+tree中,如果我们将订单指定为5,那么我们可以将4 keys存储在一个节点中,5 pointers用于存储节点

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

1 个答案:

答案 0 :(得分:2)

您可以使用从1向上选择的任何订单设计系统。如果您使订单太大,则很难在节点中找到密钥,并且树只有1或2个深度。

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

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

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