Symfoware(R) Server 概説書 - FUJITSU - |
目次 索引 |
インデックスは、データベースのデータ検索の効率を向上させるための機能です。
データを操作する場合、一般に、表の列データを検索キーとしたデータ検索を伴います。したがって、データ検索効率がデータ操作効率を決める重要な要素となります。インデックスは、表の列ごとに作成するかしないかを指定することができます。また、複数の列を結合して1つのインデックスとして指定することもできます。
インデックスを作成していない列の検索は、インデックスを作成している列の検索に比べて検索効率が低下します。そのため、データ検索のキーとなる列には、インデックスを作成する必要があります。ただし、インデックスを作成するとその分だけデータベース容量が余分に必要になります。データベーススペースの大きさを決める場合には、インデックスに必要なスペース量も考慮する必要があります。
インデックスはデータベース容量およびデータ操作効率に影響しますが、データ操作自体には何の影響もありません。したがって、利用者は、SQL文を使用してデータを操作するアプリケーションの開発時に、インデックスについて意識する必要はありません。
インデックス定義は、格納構造定義文で定義します。
インデックスは実表の列に対して定義します。ビュー表に対しては定義できません。
インデックス定義は、スキーマ定義以降、データベースにデータを格納する前に行います。しかし、データベース創成またはデータ操作によってデータベースにデータを格納した後に、インデックスを定義することも可能です。インデックスは、インデックス定義後のデータベース創成時およびデータ操作(更新)時にデータベーススペース内に作成されます。
在庫表の在庫数量列に対してインデックスを作成した場合について、以下に示します。なお、この図はインデックスを理解するための図であり、データベースの形式を正確に表している図ではありません。
在庫数量のインデックスは、在庫数量値および対応する在庫表上の行の位置を表すポインタから構成され、在庫数量値の順に並び換えられています。たとえば、在庫表から在庫数量が60である行を検索する指定の場合、まず在庫数量のインデックスが検索されます。インデックスは在庫数量値の順に並べられていますので高速に検索ができます。インデックス上で検索が終わると、そのポインタから在庫表上の行の位置が即座に分かり、指定の行が検索されます。
目次 索引 |