カバリングインデックス

更新日:

用語解説

カバリングインデックスは、特定の問合せが検索条件、結合、並べ替え、出力に必要とする全列を格納し、表本体を読まず索引だけで結果を返せるよう設計した索引です。

■ 試験で押さえるポイント

  • 索引キー列に加え、検索順序には使わない出力列をINCLUDE列などとして葉へ保持します。非キーの付加列は通常、一意性判定や木の並び順には含めません。

  • 表ページへのランダムI/Oを省くindex-only scanにより、少数行を頻繁に読む問合せを高速化できます。ただしDBMSの可視性確認などで表アクセスが残る場合があります。

  • カバーする対象は索引ではなく特定の問合せです。同じ索引でもSELECTする列が増え、索引にない列が必要になればカバリングではなくなります。

  • 付加列を増やすほど索引が大きくなり、キャッシュ効率、挿入・更新、再構築が重くなります。全列を無条件に含めず、頻出問合せと更新頻度で判断します。

■ 選択肢での判断ポイント

問合せに必要な全列が索引内にあり、表本体へのアクセスを省ける点を選びます。索引が存在するだけ、又はWHERE列だけを含むだけではカバーできない場合があります。

例: 頻出問合せSELECT 氏名 FROM 社員 WHERE 部門番号=?に対し、索引(部門番号) INCLUDE(氏名)を作れば、部門番号で探し氏名も索引から返せます。

音声で聞く

同じ分野の用語