“売上”表への次の検索処理のうち,B+木インデックスよりもハッシュインデックスを設定した方が適切なものはどれか。
ここで,インデックスを設定する列を<>内に示す。
売上(伝票番号,売上年月日,商品名,利用者ID,店舗番号,売上金額)
正答4
解説
正解は4です。
B+木インデックスは、キーの値を順序どおりに保持するので、範囲検索や前方一致検索に向いています。
ハッシュインデックスは、キーの値からハッシュ関数で格納位置を直接求めるので、値の一致検索に向いています。
ハッシュ値には大小の順序が保たれないため、範囲検索には使えません。
【選択肢別解説】
1:× 「1万円以上」は範囲検索です。
値の順序を保つB+木インデックスの方が適しています。
2:× 「今月の売上」は、売上年月日が月初から月末までという範囲検索です。
B+木インデックスの方が適しています。
3:× 「‘DB’で始まる」は前方一致検索です。
文字列の順序に沿って範囲を絞れるB+木インデックスの方が適しています。
4:○ 「利用者IDが‘1001’」は、値が完全に一致するものを探す検索です。
ハッシュ関数で格納位置を一度で求められるハッシュインデックスが適しています。
【ポイント】
ハッシュインデックスは一致検索に強く、範囲検索や前方一致検索には使えません。
B+木インデックスは一致検索にも範囲検索にも使える汎用的な方式です。