ハッシュインデックスが適する検索
出典: 令和5年度 秋期 応用情報技術者試験 午前 問26 (IPA)
“売上”表への次の検索処理のうち,B⁺木インデックスよりもハッシュインデックスを設定した方が適切なものはどれか。ここで,インデックスを設定する列を<>内に示す。
売上 (伝票番号,売上年月日,商品名,利用者 ID,店舗番号,売上金額)
- ア 売上金額が 1 万円以上の売上を検索する。<売上金額>
- イ 売上年月日が今月の売上を検索する。<売上年月日>
- ウ 商品名が ‘DB’ で始まる売上を検索する。<商品名>
- エ 利用者 ID が ‘1001’ の売上を検索する。<利用者 ID>
正解と解説を見る
正解: エ
- ア: 「1 万円以上」は範囲検索なので、値の順序を保つ B⁺木インデックスの方が向いています。
- イ: 「今月」は期間を指定する範囲検索なので、B⁺木インデックスの方が向いています。
- ウ: 「‘DB’ で始まる」は前方一致の検索で、ハッシュでは探せません。B⁺木インデックスの方が向いています。
- エ: 利用者 ID が ‘1001’ に一致するものを探す検索なので、ハッシュインデックスが適しています。
ポイント
- ハッシュインデックス: キーの値からハッシュ関数で格納場所を計算するので、値が完全に一致するもの (= の検索) を探すのが得意です。値の大小の順序は保たれないので、範囲検索や前方一致には使えません。
- B⁺木インデックス: キーの順に並んだ木構造なので、範囲検索 (以上・以下、期間) や 前方一致 にも使えます。