原則として、B +ツリー

クエリ効率原理を改善するためのインデックス:ディスクIO減らす
B +ツリーのようにInnoDBエンジンのインデックスに格納されている:
1、B +ツリーの各々のルートを除いて、m個のフォーク(M> = 2)を開くまで、よりバランスのとれたツリーでありますノードは、素子番目の要素mまでの要素の最小値が含まれ、我々は、ツリー順序Bを呼び出すM、各内部ノード内の子ノードの数を最大にするために、ツリーの高さを低減することにより、多段含有理由を含むB +ツリーツリーの深さが高いが、クエリの速度より遅く、B +ツリーは、他の自己均衡二分探索木のような定期的なリバランスを必要としないので。
図2に示すように、木の平衡ツリーのツリー1以下、より均一の高さの差は、特に大深度の分岐ではありません。
図3は、B +ツリーは、関連情報を上記各リーフノードはインデックスキーが格納されているだけでなく、ポイントの後にリーフノードに隣接して格納されているBツリーデータ構造の変換に基づいて小さくします主に、隣接するリーフノード効率の考慮事項複数の検索を高速化するために、リーフノードポインタ情報、。
4、Bツリー構造は、各ノードで、図のキー値に見ることができるデータ、及びデータ値だけではないが含まれています。保存された大量のデータはまた、B-につながるときに、データは、各ノード(すなわち、ページ)のための大規模なデータをもたらす場合、メモリページの各々は、制限され、キーの小さな数を記憶することができますより大きな深さの木、私は、これにより、クエリの効率に影響を与える、/ O回数を照会する場合、ディスクを増やします。B +ツリーでは、すべてのノードが同じレベルのリーフノードの順に格納された鍵データレコードに従っているだけでなく、大幅に各ノードに格納されたキー値の数を増加させることができるリーフノード情報のキー値を格納します減少高さ+ツリーB.
B +ツリーインデックスデータベースは、クラスタ化インデックス(クラスタ化インデックス)とセカンダリインデックス(二次索引)に分けることができます。B +ツリー図データベースインデックスに上記の例を達成する集合体である、リーフノードの集合インデックスB +ツリーは、テーブル全体のデータ行に格納されています。インデックスをクラスタ化補助リーフノードとの間の屈折率差は、行のすべてのデータが含まれていない二次インデックスが、インデックスキーに対応する行、すなわち、主キーをクラスタ化されたデータが格納されます。二次インデックスを介してデータを照会する場合、InnoDBストレージエンジンは、主キーを見つけるために二次インデックスをトラバースし、次いで主キークラスタ化インデックスによって記録されたデータの完全なラインを見つけます。

プロセスB +ツリーインデックス
ルックアップ
バイナリ検索ツリーと同様の典型的な方法で見つけます。ルートノードから開始して、ツリートップダウン・トラバーサル、どちらかの側の値を見つけるために、分離した子ポインタ値を選択します。典型的な内部ノードにバイナリサーチは、位置を決定するために使用されます。
挿入
違反状態にあるノードを、それが許容範囲外の要素の数を含んでいなければなりません。
あなたは、ノードの位置を挿入する場所1.まず、見て。次に、挿入されたノードの値。
2.ノードが存在しない場合は、違反状態にある、プロセスは終了します。
ノードは、あまりにも多くの要素がある場合3.、それは要素の最小数を持つ2つのノードを、それぞれに分け入れました。ルートノードが分割されている場合は、ルートに到達するまで、このプロセスを継続する樹木で、最大再帰、新しいルートノードを作成します。それを動作させるために、要素の最小値と最大数は、典型的には半分以下の最大数の数を最小限にするように選択する必要があります。
削除
1.まず、削除したい値を見つけます。この値は、それが含まれているノードから削除されます。
2.ノードが存在しない場合は、違反状態にある、プロセスは終了します。
3.ノードが状態に違反している場合は2つのシナリオがあります。

より多くの技術的なアドバイスが心配することがあります。gzitcast

おすすめ

転載: www.cnblogs.com/heimaguangzhou/p/11511783.html