索引を使用したデータベース設計
索引を使用して、データ・アクセスを最適化し、固有性を確保し、クラスタリングを使用可能にできます。
データベースの物理設計にかかわっている場合、他の設計者と共同して索引付けする列と式を決定します。 さまざまなアプリケーションがデータをどのようにアクセスしようとしているかを記述するプロセス・モデルを使用します。 この情報は、適切なパフォーマンスが得られるように、索引付け方針を決定する場合に非常に重要です。
索引の主な目的は、以下のとおりです。
- データ・アクセスを最適化するには
- 多くの場合、データ・アクセスは、索引を使用したほうが、使用しない場合よりも高速です。 DBMS が索引を使用して表内の行を検索する場合、DBMS が表全体をスキャンする場合よりもスキャンが高速になります。
- 一意性の確保
- ユニーク索引のある表は、索引キーを形成する列に、同じ値の行を 2 つ持つことはできません。 例えば、給与計算アプリケーションでは従業員番号を使用しますが、2 人の 従業員が同じ従業員番号を持つことはできません。
- クラスタリングを使用可能にする
- クラスタリング索引は指定された順序で表の行を保持し、行の集合のページ・アクセスを最小化します。 表スペースがパーティション化されている場合、行が各パーティション内にクラスター化されます。 クラスタリングは、パーティションと同じ順序にすることができます。 例えば、パーティションがその月にあり、クラスタリング索引がその名前にある場合、行はその月内の名前でクラスター化されます。
一般的に、表の使用者は索引が使用中であることを意識しません。 Db2 インデックスを使用してテーブルにアクセスするかどうかを決定します。