如何确定B树的顺序

How to decide order of a B-tree

据说 B 树在主内存无法容纳的大量数据的情况下特别有用。

我的问题是我们如何决定 B 树的顺序或在一个节点中存储多少个键?或者一个节点应该有多少个子节点?

我发现到处都有人在每个节点使用 4/5 个密钥。它是如何解决海量数据和磁盘读取问题的?

通常,您会选择这样的顺序,以便生成的节点尽可能大,同时仍适合块设备页面大小。如果您正在尝试为磁盘上的数据库构建 B 树,您可能会选择每个节点适合单个磁盘页面的顺序,从而最大限度地减少执行每个操作所需的磁盘读写次数.如果您想构建内存中的 B 树,您可能会选择 L2 或 L3 缓存行大小作为目标,并尝试在不超过该大小的情况下将尽可能多的键放入节点。无论哪种情况,您都必须查看规格以确定要使用的尺寸。

当然,您也可以随时进行实验并尝试根据经验来确定这一点。 :-)

希望对您有所帮助!