B-ツリー
B-ツリー(バランスツリー)およびデータベース・アプリケーションでのB +ツリーインデックスは、何故二分木をしない、バランスのとれた検索木フォークマルチチャネルm考えられるが、理論的には、二分木検索速度と比較の数が最小であることができますか?
私たちは、ディスクIOの影響を考慮する必要があるので、非常に遅いメモリに相対的です。データベースインデックスは、ディスク上に格納され、データの量は、全体的なインデックスは、メモリの全てにロードすることができない場合には、各ディスクページ(インデックスツリーのノードに対応する)ずつロードされことができます。我々はそれが木であるため、IOの数は、ツリーの高さがあり、そして「分厚い」はBツリーの特徴の一つである、IOの数を減らしたいので、各ノードがその最もメートルの子供が含まれ、mはBツリーの順序と呼ばれています、Mサイズはディスク・ページのサイズによって異なります。
定義
M進ツリー定義のB
- ルートノードの少なくとも2人の子供があります。
- 各中間ノードは、k 1及びk子供の要素を含みます
m/2<=k<=m
- 各葉ノードは、前記要素のK-1を含有します
m/2<=k<=m
- すべてのリーフノードは、同じレベルにあります
- 昇順の各ノードの要素、K-1、Kの範囲の要素を含むだけ子パーティション要素となっているノード
プロパティ
- ツリー全体に分散したキーワードのセット
- 任意のキーワードは、一度、一つのノードのみで表示されます
- 検索は非リーフノードで終わることがあります
- その検索のパフォーマンスは、キーワードを探す全集で半分をやってと同じです
- 自動レベル制御
B +ツリー
B +ツリーは、変異型B-ツリーであるマルチウェイの探索木があります
定義
B-ツリーは、実質的に同一の定義、異なる点は次の通りであります:
- サブツリーのリーフノードポインタは、キーワードの数と同じではありません
- サブツリーポインタPの非リーフノード[i]は、サブツリーのポイントキー([K [i]は、K [I + 1])に属する値(B-ツリーが開区間です)
- すべてのリーフノードは、チェーン・ポインタを増やします
- すべてのキーワードは、リーフノードに表示されます
プロパティ
- すべてのキーワードは、リーフノード(密集指数)のリストに表示され、キーワードのリストを注文することを起こります
- 非リーフノードをヒットすることはできません
- 索引(インデックススパース)のリーフノードへの非リーフノード相当し、データ記憶層(キーワード)のデータに対応するリーフノード
- ドキュメントのインデックス作成システムのためのより適切な
B +ツリー及びB-ツリー比較
これは、分化は、次数mの例としてツリーに起因することストレージ構造を有するBとB +ツリーに起因するものです。
- キーワードの異なる数; B +ツリーブランチノードは、m個の子ノードがあるが、リーフノードはまた、キーワードのみ効果の指標を果たしたMを有するM個のキーワードが、Bツリーを持っているが、唯一私たちは、M-1のキーワードを持っています
- 異なる場所に格納され、リーフノードに格納されているB +データツリーは、すべてのリーフノードが組み合わされ、すなわちデータは、完全なデータであるが、各ノードでのBツリーに格納されたデータは、それだけではありませんリーフノードに格納されます
- ブランチノードの異なる構成; B +ツリー格納キーワード情報のブランチノードのみと息子ポインタのみインデックス情報を格納する内部ノードであること、(ポインタ本明細書中にディスク・ブロックのオフセットを意味します)
- 別のクエリ; B +ツリーがどの手段離れルートからリーフまでの検索処理B +ツリーこと、インデックスを介してデータのリーフノードの終了前に発見する必要があります上のBツリー将来的には、特定の値を見つけるためには、それはあります。パスノード
B *ツリー
B * B +ツリーは、ツリーの変種でも、マルチパス探索木であります
定義
次のように実質的に同一のB +ツリーを定義し、異なる点は以下のとおりです。
- 非ルートと非リーフノードは、兄弟ノードへのポインタを追加します
概要
- B-ツリー:複数の探索木、Mキーワードに、各ノード店M / 2は、非リーフノードは、すべてのキーワードの子ノードのキーワード範囲へのポインタは、ツリー全体の部分を表示され、のみ表示されます保存します一度、非リーフノードがヒットすることができます
- B +木:インデックスのリーフ・ノードとしてB-ツリーに基づいて、リストのポインタが、リーフノードを高めているリーフノード内のすべてのキーワードが表示され、非リーフノードとリーフノードへのB +ツリーは、常に前ヒット
- 非リーフノードリンクリストポインタ増加に基づいて、B +ツリーは、最下位ノードの利用率が2/3に1/2から増加する:B *ツリー