ホームページ  >  記事  >  データベース  >  mysql B+Treeインデックスの概念とは何ですか

mysql B+Treeインデックスの概念とは何ですか

王林
王林転載
2023-05-28 15:20:051065ブラウズ

コンセプト

1. B ツリーは、B ツリーに基づいた最適化であり、外部ストレージ インデックス構造の実装により適しています。 B ツリーでは、すべてのデータ レコード ノードがキー値の順に同じ階層のリーフ ノードに格納されます。キー値の情報のみが非リーフ ノードに格納されます。これにより、各ノードに格納されるキーの数が大幅に増加する可能性があります。 . 値の数により、B ツリーの高さが減ります。

B ツリーとの違い

B の検索は基本的に B ツリーと同じですが、B ツリーは到達した場合にのみヒットする点が異なります。リーフ ノード (B ツリーは非リーフ ノードでもヒット可能)

(1) すべてのキーワードはリーフ ノードのリンク リスト (密なインデックス) に表示され、リンク リスト内のキーワードはたまたま順序付けられています。 ; (ルートノードのみが格納されます キーワードはツリーの最後にのみ値を持ちます)

(2) 非葉ノードは葉ノードのインデックス(疎インデックス)に相当し、葉ノードは(キーワード)データを格納するデータ層に相当します。 (非ルート ノードは、実際にはルート ノードを指すインデックスを格納します)

(3) 最初の 2 つの点のため、非リーフ ノードにデータを格納することは不可能です。 (B-の 3 番目の違い)

(4) ルート ノードには水平方向のチェーン ポインタもあります (手掛かりをすばやくたどるのに便利です。このポインタがないと、次の値が隣接する値であっても、これを取得するには、Circle を実行する必要があります)

使用手順

2. B ツリー インデックスは、ほとんどの MySQL ストレージ エンジンのデフォルトのインデックス タイプです。

テーブル全体のスキャンを実行する必要がなくなり、ツリーのみを検索すればよいため、検索速度が大幅に速くなります。

B Tree は整然としているため、検索だけでなく、並べ替えやグループ化にも使用できます。

複数の列をインデックス列として指定でき、複数のインデックス列がまとめてキーを形成します。

完全なキー値、キー値の範囲、およびキー プレフィックス検索に適用されます。キー プレフィックス検索は、左端のプレフィックス検索にのみ適用されます。インデックスが付けられた列の順序で検索しない場合、インデックスは使用できません。

以上がmysql B+Treeインデックスの概念とは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。