インデックス設計
インデックスは、データベースにおける索引で、目的の情報を見つけやすくしてくれます。
インデックスの性質
- アプリケーション透過性
- データ透過性
アプリケーション透過性
非正規化→正規化は大きな変更が必要だが、インデックスはインデックスを追加するだけでいいのでアプリケーションに影響を与えない。
データ透過性
インデックスを作成してもデータに影響を与えない。
B-treeインデックス
いくつかあるインデックスの種類のうち一番ポピュラーなのがB-treeインデックスです。
B-treeインデックスは平衡木から成っており、木の高さも3〜4と低いのでデータ量が増えるほどフルスキャンより高速になります。
B-treeインデックスの設計
以下の方針でインデックスを張る列を選びます。
- 大規模なテーブル
- カーディナリティの高い列
- whereの選択条件または結合条件で使われている列
ここでの大規模は、レコード数が1万件以上の事を指します。
また、カーディナリティとは各テーブルが取りうる値の数の事です。
例えば、日本の球団の列があるとするならその列が取りうる値は12通りになります。よってカーディナリティは12です。
まとめ
よくwhereする列にはインデックス張っといたほうがいい。
ただ、挿入が少し遅くなる。
参考

- 作者: ミック
- 出版社/メーカー: 翔泳社
- 発売日: 2013/08/07
- メディア: Kindle版
- この商品を含むブログ (2件) を見る