基本情報技術者 テクノロジ系

インデックス(索引)をデータベースに設定する主な目的として適切なものはどれか。

1. データの整合性を保つ
2. 検索処理を高速化する ✓ 正解
3. データの重複を防ぐ
4. テーブルの容量を減らす

📝 解説

データベースのインデックス(索引)はテーブルの特定列の値と行の位置情報を整理した補助的なデータ構造(主にB木・B+木)で、検索処理を大幅に高速化するために使われます。本の巻末索引(インデックス)がまさに同じ概念です。索引がない本で「データベース」という単語を探すには全ページを見る必要がありますが(テーブルフルスキャン)、索引があれば索引で「データ」→「だ行」→「データベース=p.253」とすぐ特定できます。インデックスを張ることでWHERE句による検索・JOIN条件の処理が大幅に高速になります。ただしインデックスにも記憶領域が必要で、INSERT/UPDATE/DELETE時にはインデックスも更新するため書き込み処理が遅くなるデメリットがあります。WHERE句でよく使う列・JOINキーとなる外部キー列・ORDER BYでよく使う列にインデックスを張るのが基本方針です。誤答の「データの整合性を保つ」は主キー制約・外部キー制約の役割、「データの重複を防ぐ」はUNIQUE制約、「テーブルの容量を減らす」はインデックスはむしろ容量を増やします。「インデックス=検索高速化・書き込みにはオーバーヘッド・B木構造が一般的」と覚えましょう!

フラッシュカード形式で テクノロジ系 を練習する

🎴 練習する

テクノロジ系 の問題一覧・解説を見る →