過去問解きまくり研究所 ホーム

平成23年度 秋期 午前 問32

データベース

インデックスに関する問題

“部品”表のメーカコード列に対し,B+木インデックスを作成した。これによって,検索の性能改善が最も期待できる操作はどれか。ここで,部品及びメーカのデータ件数は十分に多く,メーカコードの値は均一に分散されているものとする。また,ごく少数の行には,メーカコード列に NULL が設定されている。

答えと解説を見る

✓ これが正解ウメーカコードの値が 4001 以上,4003 以下の部品を検索する。

解説

強く絞り込める範囲の指定で効きます。

インデックスは、条件に合う行が全体のごく一部に限られるときに効きます。逆に、ほとんどの行が戻ってくるような条件では、索引をたどってから表の行を引きにいくという往復が行数のぶん積み上がり、素直に全部を順に読むほうがかえって速くなります。ですから判断の順序は、まずどれくらいの行が戻るかを見積もることです。設問が、データの件数は十分に多く、値は均一に分散していると断っているのは、この見積もりをさせるためです。値の種類がいくつかあって均一に散っているなら、ある一つの値に当たる行は全体のごく一部で、それを除いた残りはほとんど全体になります。もう一つ、この索引の形も見ておきます。B+木は値を並んだ順に葉へ置き、葉どうしが横につながっている造りです。端を一度引き当てれば、あとは横にたどるだけで、ある幅に収まる値をまとめて取り出せます。つまり、上と下の境目を示す指定と相性がよいわけです。四つの操作を見比べる軸は二つになります。戻る行数が少ないかどうか、そしてこの並びをたどる形に乗るかどうかです。なお、値が入っていない行は索引に載らない造りが多く、NULL を手掛かりにした絞り込みは効果を期待しにくい点も押さえておくとよいでしょう。

ほかの選択肢はなぜ違うのか

この問題の用語

出典:平成23年度 秋期 応用情報技術者試験 午前 問32

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)