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