📅  最后修改于: 2020-12-12 07:58:13             🧑  作者: Mango
假设我们必须在下面的B +树结构中搜索55。首先,我们将获取中间节点,该中间节点将定向到可以包含55条记录的叶节点。
因此,在中间节点中,我们将找到50到75个节点之间的分支。然后,最后,我们将被重定向到第三个叶节点。在这里,DBMS将执行顺序搜索以找到55。
假设我们要在下面的结构中插入一条记录60。它会在55之后到达第三个叶子节点。这是一棵平衡树,并且该树的叶子节点已经满了,因此我们不能在其中插入60。
在这种情况下,我们必须拆分叶节点,以便可以将其插入树中而不会影响填充因子,平衡和顺序。
第三个叶节点的值分别为(50、55、60、65、70),其当前根节点为50。我们将在中间拆分树的叶节点,以使其平衡不变。因此,我们可以将(50,55)和(60,65,70)分为2个叶节点。
如果这两个必须是叶节点,则中间节点不能从50个分支。它应该添加60个,然后我们可以有一个指向新叶节点的指针。
这是我们如何在溢出时插入条目。在正常情况下,很容易找到适合的节点,然后将其放置在该叶节点中。
假设我们要从上面的示例中删除60。在这种情况下,我们必须从中间节点以及第4个叶节点中删除60个。如果我们从中间节点删除它,那么该树将不满足B +树的规则。因此,我们需要对其进行修改以使其具有平衡的树。
从B +树上方删除节点60并重新排列节点后,它将显示如下: