インデックスの作成方法と注意点
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