ハッシュインデックスとは?ハッシュインデックス
ハッシュインデックスとは、キーにハッシュ関数を適用して得た値から格納位置を直接算出する索引方式。等価検索なら木をたどらずに目的の位置へ一度で到達できるが、値の順序が保存されないため範囲検索や整列には使えない。B-treeインデックスとの使い分けが問われる。索引を張れば速くなるとは限らない、という設計判断の典型例。
最終更新:2026-10-06
この語が出る過去問を解く →背景
索引は速く探すためのものだが、探し方には等号で1件を引く場合と、範囲や順序で束を取る場合がある。順序を保つ構造は木の高さぶんの比較が要り、順序を捨てて位置を計算する構造は一度で届く代わりに並びを失う。どちらの検索が主かで構造を選ぶという交換条件が、インデックス設計の核にある。
具体例
会員番号をハッシュ関数にかけ、算出したバケットを直接読みに行く。PostgreSQLのHASHインデックスやMySQLのMEMORYエンジンの既定索引がこれにあたり、=での絞り込みには効くがBETWEENやORDER BYには使われない。
試験での引っ掛け
範囲検索・整列・前方一致に使えない点がB-treeとの決定的な差で、ここが繰り返し問われる。異なるキーが同じ位置になる衝突(シノニム)への対処として連鎖法やオープンアドレス法が要る。値の種類が少ない列に効くビットマップインデックスとも別物。
関連用語
出た過去問
出典:令和5年度 秋期 応用情報技術者試験 午前 問26(IPA)
“売上”表への次の検索処理のうち、B+木インデックスよりもハッシュインデックスを設定した方が適切なものはどれか。ここで、インデックスを設定する列を<>内に示す。…
正解:利用者IDが'1001'の売上を検索する。<利用者ID>
要点:ハッシュインデックスは等価検索専用。範囲検索は不可
ハッシュインデックスは、キーの値をハッシュ関数で変換して格納位置を求めるため、値が完全に一致する等価検索を高速に処理できる。一方で値の大小関係や並び順は保持しないので、範囲検索や前方一致検索には使えない。利用者IDが特定の値と一致する行を探す検索はまさに等価検索であり、ハッシュインデックスが適する。
出典:令和7年度 秋期 応用情報技術者試験 午前 問27(IPA)
“売上”表への次の検索処理のうち、B木インデックスよりもハッシュインデックスを設定した方が適切なものはどれか。ここで、インデックスを設定する列を<>内に示す。 …
正解:利用者IDが‘1001’の売上を検索する。<利用者ID>
要点:ハッシュインデックスは等価検索専用で範囲検索には使えない
ハッシュインデックスはキーをハッシュ値に変換して格納位置を求めるため、値が完全に一致する等価検索を高速に行えるが、大小比較や範囲検索、前方一致検索には使えない。利用者IDが特定の値と一致する行を探す検索は等価検索なので、ハッシュインデックスが適している。
出典・参考
公式シラバスの3 技術要素 > 4. トランザクション処理 > (4) データベースの性能向上に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。