SQL インデックス

基本はB-tree(B+tree)インデックスが利用されることが多い。

特徴としては、ノードにキーを持ち、リーフノードにポインタがある。作成時はキーをソートする。
リーフノードまでの距離が均一でバランスがいいのが特徴。

インデックスが必要な箇所

大規模(数万以上)なテーブル。規模が小さいとフルスキャンと大差ない。

カーディナリティ(入る値の種類数のこと)が高い列。さらに入る値が集中していないこと。

検索条件や結合条件の列以外は無意味。(検索条件内でもインデックスの列で演算などするとダメ)注意点として、否定形(<>)やORやLIKE演算子はダメで、暗黙の型変換もダメ。

主キーは既にインデックスされているので不要。