IT資格用語解説基本情報技術者試験・データベースの性能向上
カバリングインデックス
更新日:
用語解説
カバリングインデックスは、特定の問合せが検索条件、結合、並べ替え、出力に必要とする全列を格納し、表本体を読まず索引だけで結果を返せるよう設計した索引です。
■ 試験で押さえるポイント
索引キー列に加え、検索順序には使わない出力列をINCLUDE列などとして葉へ保持します。非キーの付加列は通常、一意性判定や木の並び順には含めません。
表ページへのランダムI/Oを省くindex-only scanにより、少数行を頻繁に読む問合せを高速化できます。ただしDBMSの可視性確認などで表アクセスが残る場合があります。
カバーする対象は索引ではなく特定の問合せです。同じ索引でもSELECTする列が増え、索引にない列が必要になればカバリングではなくなります。
付加列を増やすほど索引が大きくなり、キャッシュ効率、挿入・更新、再構築が重くなります。全列を無条件に含めず、頻出問合せと更新頻度で判断します。
■ 選択肢での判断ポイント
問合せに必要な全列が索引内にあり、表本体へのアクセスを省ける点を選びます。索引が存在するだけ、又はWHERE列だけを含むだけではカバーできない場合があります。
例: 頻出問合せSELECT 氏名 FROM 社員 WHERE 部門番号=?に対し、索引(部門番号) INCLUDE(氏名)を作れば、部門番号で探し氏名も索引から返せます。