ホームページ  >  記事  >  データベース  >  MySQL インデックスの基本的な実装原則の詳細な説明

MySQL インデックスの基本的な実装原則の詳細な説明

coldplay.xixi
coldplay.xixi転載
2021-04-27 09:31:532414ブラウズ

MySQL インデックスの基本的な実装原則の詳細な説明

#MySQL インデックスの基本的な実装原則

    • 1. はじめに
    • 2 . インデックス タイプ
      • 1、ハッシュ インデックス
      • 2、BTree インデックスおよび B Tree インデックス
        • (1) BTree インデックス
        • (2) B Tree インデックス
        • (3) BTree と比較した B Tree の利点:
      • 3. 全文インデックス

関連する無料学習の推奨事項: mysql ビデオ チュートリアル

# #1. はじめに

MySQL は多くのストレージ エンジンをサポートしており、ストレージ エンジンごとにインデックスのサポートが異なるため、MySQL データベースは BTree インデックス、B Tree インデックス、ハッシュ インデックスなどの複数のインデックス タイプをサポートしています。 、全文インデックス作成など。

2. インデックス タイプ

1. ハッシュ インデックス

メモリ (メモリ) ストレージ エンジンのみがハッシュ インデックスをサポートします。ハッシュ インデックスは、インデックス列の値を参照して値の hashCode を計算し、その値が存在する行データの物理的な位置を hashCode の対応する位置に格納します。ハッシュ アルゴリズムが使用されているため、アクセス速度は非常に速いですが、1つの値に1つのハッシュコードしか対応できず、ハッシュ分散されているため、ハッシュインデックスは範囲検索やソート機能をサポートしていません。

2. BTree インデックスと B Tree インデックス

(1) BTree インデックス

BTree インデックスは、マルチフォーク ツリーのバランス検索です。ツリーの深さが 2d (d > 1)、高さが h である場合、BTree は次の条件を満たす必要があります:

① 各リーフ ノードの高さは同じであり、h に等しい必要があります;

② 各葉ノードは n-1 個のキーと n 個のポインタで構成されます。ここで d ③リーフ ノード ポインタはすべて null;
④ 非リーフ ノードのキーはすべて [key, data] タプルであり、key はインデックスとしてのキーを表し、data はインデックスとしてのキーを表します。キー値が見つかりました。

(2) B Tree インデックス

B Tree は BTree のバリアントで、d がツリーの次数、h が数値の高さである場合、B Tree と B Tree の主な違いは次のとおりです。 BTree は:

① B ツリーの非リーフ ノードはデータを格納せず、キー値のみを格納します;

② B ツリーのリーフ ノードにはポインタがなく、すべてのキー値がリーフ ノードに表示されます。キーに格納されるキー値はデータに対応 データ データ 物理アドレス;
③B ツリーの各非葉ノードは n 個のキー値と n 個のポインタで構成されます。

(3) BTree と比較した B Tree の利点:

① ディスクの読み書きコストが低い;

② クエリ速度が安定している。


3. フルテキスト インデックス

FullText (フルテキスト) インデックスは、MyISAM と InnoDB でのみ使用できます。より大きなデータの場合は、フルテキスト インデックスを生成します多くの時間とスペースを消費します。

フルテキスト インデックスを生成すると、テキストの単語のリストが生成され、インデックス作成時にこの単語のリストに基づいてインデックスが作成されます。


関連する無料学習の推奨事項:

mysql データベース(ビデオ)

以上がMySQL インデックスの基本的な実装原則の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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