平成22年度秋期 応用情報技術者試験 午前 問31
関係データベースにおけるインデックスの設定に関する記述のうち,適切なものはどれか。
- ア インデックスの設定に際しては,検索条件の検討だけでなく,テーブルのレコード数についての考慮も必要である。
- イ インデックスの設定によって検索性能が向上する場合は,更新・削除・追加処理の性能も必ず向上する。
- ウ インデックスの設定は,論理設計段階で洗い出された検索条件に指定されるすべての列について行う必要がある。
- エ 性別のように 2 値しかもたないような列でも,検索条件に頻繁に指定する場合は,インデックスの設定を行う方がよい。
解答・解説を見る
正解:ア
AI解説
インデックス設計は検索性能向上と更新性能低下のトレードオフを考慮する必要があり、テーブルのレコード数(データ量)が少ない場合はインデックスの効果が薄く、逆に更新・追加・削除時のインデックス保守コストが増えるため、レコード数も含めた総合的な判断が必要になる。 ア: 正しい。インデックス設計では検索条件の検討だけでなく、テーブルのレコード数(件数が少なければ全表走査の方が速いこともある)も考慮する必要がある。 イ: インデックスを設定すると検索は高速化されるが、更新・削除・追加のたびにインデックス自体も更新する必要があるため、更新系の処理性能はむしろ低下することが多く、必ず向上するわけではない。 ウ: 検索条件に指定される列すべてにインデックスを設定すると更新コストが増大し、インデックスの数が増えすぎて非効率になる場合があるため、必要性を吟味して選択的に設定すべきである。 エ: 性別のように値の種類(カーディナリティ)が2値しかない列は、インデックスを使っても絞り込み効果が小さく、全表の半分程度しか絞れないため、一般的にインデックスの効果は低く設定は推奨されない。 💡 インデックスは「検索は速くなるが更新は遅くなる」「カーディナリティが低い列には効果が薄い」「件数が少ない表には不要」という3点セットで覚えると誤答肢を判別しやすい。
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。