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