B+木:挿入で節が割れて伸びる

次数 m を決めてキーを挿入し、満杯の節が割れて中央キーが親へ昇る様子と、高さ(= ディスク I/O 回数)の変化を体感します。

3
42
次数 m(最大キー = m−1)
登録キー数 N
木の高さ(= 探索 I/O)
これまでの分割回数
B+木の構造(赤=直前に割れた節 / 葉は連結リストで横に繋がる)
B+木は、データベースの索引で使われる「平たくて多分岐」な探索木です。1 つの節に最大 m−1 個のキーを詰め込み、子は最大 m 個に枝分かれします(m次数と呼びます)。
キーを挿入していくと、葉がやがて満杯(m−1 個)になります。そこへもう 1 つ入れると節は分割され、中央のキーが親へ押し上げられます。この押し上げが根まで伝わると、根が割れて木が 1 段高くなるのです。
木の高さはディスクから索引をたどるI/O 回数そのもの。次数 m を上げると同じキー数でも高さが下がる(= I/O が減る)ことを確かめましょう。

いま何が起きている?

ここがポイント