応用情報技術者
データベース
インデックスを作成する主な目的は何か?
1.
検索・参照の高速化
✓ 正解
2.
データの整合性確保
3.
ストレージ容量の節約
4.
バックアップの高速化
📝 解説
インデックス(索引)はテーブルの特定列に対して作成するデータ構造で、本の索引(巻末の「あいうえお順の用語と掲載ページ一覧」)と全く同じ役割を果たします。本文を全ページスキャンせずに目的のページをすぐ見つけられるように、インデックスがあればテーブルの全行スキャン(フルスキャン)なしに目的のデータをすばやく検索できます。特にBツリーインデックスは検索・範囲検索に強く、計算量O(log n)で高速に検索できます。一方でインデックスはデータと別に管理するため、INSERT・UPDATE・DELETEのたびにインデックスも更新するオーバーヘッドが発生します。「読み込みは速くなるが書き込みはやや遅くなる」というトレードオフです。誤答の「データの整合性確保」は主キー制約や外部キー制約の役割、「ストレージ容量の節約」はインデックスが追加容量を必要とするため真逆、「バックアップの高速化」はインデックスとは無関係です。「インデックス=検索・参照の高速化(書き込みオーバーヘッドと引き換え)」と覚えましょう!