応用情報技術者 2010年 秋期 午前2 問31
問題文
関係データベースにおけるインデックスの設定に関する記述のうち、適切なものはどれか。
選択肢
ア:インデックスの設定に際しては、検索条件の検討だけでなく、テーブルのレコード数についての考慮も必要である。(正解)
イ:インデックスの設定によって検索性能が向上する場合は、更新・削除・追加処理の性能も必ず向上する。
ウ:インデックスの設定は、論理設計段階で洗い出された検索条件に指定されるすべての列について行う必要がある。
エ:性別のように 2 値しかもたないような列でも、検索条件に頻繁に指定する場合は、インデックスの設定を行う方がよい。
関係データベースにおけるインデックスの設定に関する記述【午前2 解説】
要点まとめ
- 結論:インデックス設定では検索条件だけでなくテーブルのレコード数も考慮すべきです。
- 根拠:大量のデータがある場合にインデックスが効果的で、少量データでは逆に負荷増加の原因となるためです。
- 差がつくポイント:更新処理の影響や列の特性(選択性)を理解し、無闇に全列にインデックスを付けない判断力が重要です。
正解の理由
ア: インデックスの設定に際しては、検索条件の検討だけでなく、テーブルのレコード数についての考慮も必要である。
インデックスは検索性能を向上させる一方で、テーブルのレコード数が少ない場合はインデックスの管理コストが無駄になることがあります。したがって、検索条件だけでなく、テーブルの規模も考慮して設定することが適切です。
インデックスは検索性能を向上させる一方で、テーブルのレコード数が少ない場合はインデックスの管理コストが無駄になることがあります。したがって、検索条件だけでなく、テーブルの規模も考慮して設定することが適切です。
よくある誤解
インデックスを付ければ常に処理が速くなると誤解しがちですが、更新処理の負荷増加や選択性の低い列への設定は逆効果になることがあります。
解法ステップ
- インデックスの目的は検索性能の向上であることを確認する。
- テーブルのレコード数が多い場合に効果が高いことを理解する。
- 更新・削除・追加処理に与える影響を考慮する。
- 列の選択性(ユニーク性や値の分散度)を評価する。
- 選択肢の記述がこれらのポイントを満たしているかを判断する。
選択肢別の誤答解説
- イ: インデックスは検索性能を向上させるが、更新・削除・追加処理の性能は通常低下するため誤り。
- ウ: すべての検索条件に対してインデックスを付ける必要はなく、コストと効果を考慮して選択するため誤り。
- エ: 性別のように2値しか持たない列は選択性が低く、インデックスを付けても効果が薄いため誤り。
補足コラム
インデックスにはBツリーインデックスやハッシュインデックスなど種類があり、用途やデータ特性に応じて使い分けられます。また、複合インデックスや部分インデックスも性能最適化に役立ちます。
FAQ
Q: インデックスはすべての列に付けるべきですか?
A: いいえ。インデックスは検索頻度や選択性、テーブルサイズを考慮して必要な列にのみ付けるべきです。
A: いいえ。インデックスは検索頻度や選択性、テーブルサイズを考慮して必要な列にのみ付けるべきです。
Q: インデックスは更新処理にどのような影響がありますか?
A: インデックスがあると更新・削除・追加時にインデックスの再構築が必要となり、処理が遅くなることがあります。
A: インデックスがあると更新・削除・追加時にインデックスの再構築が必要となり、処理が遅くなることがあります。
関連キーワード: インデックス、検索性能、テーブルサイズ、選択性、更新負荷

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

