如何确定B树的顺序

And*_*897 5 algorithm b-tree data-structures

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

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

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

tem*_*def 5

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

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

希望这可以帮助!