原則MySQLのインデックス&


何インデックスさ:インデックスフィールドに格納された値とインデックスフィールドのクエリを使用して、ソートの物理アドレスに対応するデータのリストがあり、ストレートインデックステーブルによって物理アドレスに対応転用データに、テーブル全体の一致をスキャンして、対応を見つけることができません。データ;

利点は:、Bの+、I / O操作の削減のインデックス番号を使用して、検索効率を上げることで実現

欠点を:追加、削除、追加のディスク領域の必要性を、変更操作が追加の持っている

分類:
  1. プライマリキーインデックス、すなわち、主キー
  2. ユニークなインデックスフィールドは、唯一の制約がすでに存在している、または表table_nameがユニークINDEX_NAME(「列」)を追加変更したときに設定されています。
  3. 通常のインデックスフィールドでの一般的なインデックステーブル:テーブルtable_nameはインデックスindex_nameの(「列」)を追加変更します。
  4. コンポジットインデックス:
    1. 指標として複数のフィールドの組み合わせ:表table_nameインデックスINDEX_NAME(「columnA」、「columnB」、「columnC」)を追加する変更;
    2. またはインデックスとして複数のフィールドの最初の数文字が:テーブルtable_nameインデックスINDEX_NAMEを追加変更( "columnA(3)"、 "columnB(4)"、 "columnC(5)"); // 3三つのフィールドの前に、指標として4,5文字
    3. 検索フィールドの使用頻度によって並べ替えられ、「最も左接頭辞」をフォローしない、高周波放電が左;直接columnB、columnC何の効果指標
  5. フルテキストインデックス:
    1. 创建:フルテキストインデックスINDEX_NAME(「列」)を追加TABLE_NAMEテーブルを変更します。
    2. 查询:( "XXX")に対して、テーブルマッチ(INDEX_NAME)から選択*;

データ構造:

        

    WHERE index_column =「中国」タブSELECT * FROM;番号、index_columnのインデックスデータは、緑のフィールドがあることがある、文字列ができ、データはラインに対応したデータです。

    

Indexフィールド:図ではPxの。

なぜBの+ツリー(個人の理解)

  • バイナリに対して:多くの子ノードが存在するが、バイナリツリーの各ノードは最大で2つのつの子ノードを有し、単一のBツリーノードクラスは、読み取りの/ IO有意に減少した数(十分に理解されていない、インデックスを決定し、高さを低く、多くのキーワードを収容することができデータ自体は)ハードもあります
  • B-の数に関して:B +唯一の非子ノードのインデックス番号を維持し、データを直接インデックスデータを読み出すだけ代わりに、存在しない、消費少ないIO;非子ノードポインタと子ノードの数のB +ツリー数が等しいキーです、同じデータ量、B +は、IOを低減する、より短いの高い数を予約する場合

B-ツリー:       

        





おすすめ

転載: www.cnblogs.com/dfdi33/p/11548133.html