InnoDBの二つのカテゴリーインデックス
-
クラスタ化インデックス(クラスタ化インデックス)
-
一般的なインデックス(セカンダリインデックス)
リーフノードが格納行InnoDBのクラスタ化インデックスは、従って、InnoDBのでなければならず、唯一のクラスタ化インデックス
テーブルがPK定義されている場合(1)、PKは、クラスタ化インデックスです。
(2)テーブルが定義されていない場合はPKは、最初の列ではなくNULL一意のクラスタ化インデックスです。
(3)そうでなければ、InnoDBは、クラスタ化インデックスとして隠れ行IDを作成します。
ボイスオーバー:だからPKクエリは非常に速く、直接行を配置しました。
InnoDBは、一般的なインデックスのリーフ・ノードを格納し、主キーの値。
VO:注意、その代わりに、記録ヘッドポインタメモリ行、レコードポインタインデックスのリーフノードを格納するのMyISAMの。
B +ツリーインデックス2は上に示されています。
PK、クラスタ化インデックスとして(1)ID、リーフノードが格納行。
; KEY、一般的な指標、リーフノードが格納されPK値、すなわち、ID(2)名前
一般的なインデックスが列に直接配置し、そのことはできませんので、クエリ処理の一般的な指標は、どのようにそれのようなものでしょうか?
一般的に、コードは二回、インデックスツリーをスキャンする必要があります。
これは、最初のプライマリキー値を見つけ、その行のレコードを検索、テーブルクエリにコールバックされ、その性能はインデックスツリーの上にスイープよりも低くなっています。
実際の引用:
図の組み合わせのインデックス構造:
テーブルT1(INT主キー、B int型、C int型、D INTを、E VARCHAR(20))を作成します。
T1(B、C、D)にidx_t1_bcdインデックスを作成します。
T1の値は(4,3,1,1、 'D')に挿入します。
T1の値は(1,1,1,1、「」)に挿入します。
T1の値は(8,8,8,8、 'H')に挿入します。
T1の値は(2,2,2,2、 'B')に挿入します。
T1の値は(5,2,3,5、 'E')に挿入します。
T1の値は(3,3,2,2、 'C')に挿入します。
T1の値は(7,4,5,5、 'G')に挿入します。
T1の値は(6,6,4,4、 'F')に挿入します。