再学習MySQLデータベース4:MySQLのインデックスの原理と関連するデータ構造アルゴリズム

B木

次数mのBツリーは、以下の条件を満足します

1.各ノードは最大でM個のサブツリーに有します。

前記ルートノードは、(サブツリーの存在下で)二つのサブツリーを有し、少なくとも、少なくとも1つのルートキーワードが存在します。

ルートに加えて3、残りのブランチノードの各々は、少なくともM / 2サブツリーを有します。

4.すべてのリーフノードが同じ層上にあり、Bツリーのリーフノードは、それが任意の情報を含んでいない、外部のノードと見なすことができます。

5.存在Kサブツリー分岐ノードK-1キーコードがキーコードが昇順に配列され、存在します。

キーワードの前記数がCEILを満足する必要がある(M / 2)-1 <= N <= M-1。
ここに画像を挿入説明
ここに画像を挿入説明

挿入、削除処理

B +ツリー

機能

1、より少ない階層B +ツリーの非リーフノードの各キーワード数のB +ツリーに格納比べBより、少ない階層ツリークエリデータより速いので。

2、B +ツリークエリ速度は、より安定している:B +キークエリ速度がBツリーよりも安定であるので、それぞれについて回回数が同じであるように、すべてのデータのアドレスは、リーフノード上に存在します。

3、B +木は自然の並べ替えを持っている:すべての葉は、データが順序付きリストを構成するノードB +ツリーより便利な、コンパクトなデータが高い場合には、クエリ間隔のデータのサイズは、キャッシュヒット率は、Bツリーよりも高くなります。

図4は、B +ツリーノード全体速く横断する:全体ツリー必要トラバースB +ツリーは、フルテーブルスキャンを実行するためにデータベースを助長している各層を横断する必要があるように、Bツリーのように,,する必要なく、すべてのリーフノードを横断します。

そこツリー自体の一方の非リーフノードキーワードBのアドレスB +ツリーのBツリー相対的な利点は、データ検索時間が良好B +ツリーよりあろうように、それらのデータ、ルートに近いから、頻繁にアクセスした場合のデータであります速いです。

ここに画像を挿入説明
ここに画像を挿入説明

InnoDBの的B +ツリー

ここに画像を挿入説明

参考資料:
バランスの取れたバイナリツリー、Bツリー、B +ツリー、B *ツリーあなたのいずれかを理解するには、すべての理解します

記事

マインドマッピング

公開された81元の記事 ウォン称賛19 ビュー3607

おすすめ

転載: blog.csdn.net/c22cxz/article/details/104913846