インデックスの作成方法と注意点
create index N on T(C)
N: インデックス名
T: テーブル名
C: カラム名
検索対象のテーブルの 10% 以上の行を取り出してしまうような検索には向かない(むしろ全検索するほうが速くなってしまう).
インデックスの種類
- unique index
- ランダムに取り出すレコードに設定する.
- インデックスとデータレコードが 1:1
インデックス表に{キー,ポインタ}のペアが登録される.
- 主キーには自動で設定される.
- 典型的には主キーの候補キーに設定する.
- 非 unique index (secondary index)
- 重複があるカラムに使う.
インデックスとデータレコードが1:n
- 典型的には外部キーに使う.
- hash index
- キー値にハッシュ関数を使う.
- C = 'str'のような等号比較に向く.
- 範囲検索(0 <= C and C <= 100のような検索)には向かない.
- cluster index
- データレコードがキーの並び順にソートされて格納される
- 前方一致(like 'str%')のような範囲検索に向く
- 更新時のオーバーヘッドが大きい.
更新がかからない表には効果大,頻繁に更新する表だと逆効果になる.
はたいたかし
http://exlight.net/
2011-12-01