ハッシュインデックスとは?ハッシュインデックス
ハッシュインデックスとは、検索キーをハッシュ関数に通し、得られた値から格納位置を計算だけで割り出すインデックス。木をたどるB木インデックスと違い、値が一致する行なら件数が増えてもほぼ一定の手間で取り出せる。代わりに計算結果の並びは元の値の大小と無関係になる。
最終更新:2026-10-09
この語が出る過去問を解く →背景
データが数百万件になると、先頭から順に見る線形探索では件数に比例して時間が伸びる。木構造のインデックスでも、たどる階層の回数は件数が増えるにつれて少しずつ(件数が10倍になっても数段ほど)増えていく。「この会員番号の行だけ欲しい」という一致検索に用途を絞れば、位置を計算で当ててしまうほうが速く、件数が増えても手間が変わらない。この割り切りから生まれた方式で、試験ではインデックスの使い分けとして問われる。
具体例
会員番号1234567をハッシュ関数にかけた結果が5番なら、5番のバケット(データを入れる区画)だけを読みに行く。PostgreSQLではインデックスを作るときにこの方式を指定でき、MySQLのMEMORYストレージエンジンでは既定のインデックスがハッシュ方式になっている。
試験での引っ掛け
一致検索は速いが、「1000番以上」のような範囲検索や、値の順に並べ替える処理には使えない。値の並び順が失われるためで、ここがB木インデックスとの最大の違い。別のキーが同じ位置に割り当てられる衝突(シノニム)は必ず起きるので、同じ位置の値を鎖のようにつないで持つ連鎖法や、空いている別の位置を探すオープンアドレス法で逃がす仕組みが前提になる。
関連用語
出た過去問
出典:平成28年度 秋期 基本情報技術者試験 午前 問20(IPA)
格納アドレスが1~6の範囲の直接編成ファイルにおいて,次の条件でデータを格納した場合,アドレス1に格納されているデータのキー値はどれか。 〔条件〕 (1) キー…
正解:13
要点:直接編成の衝突はオープンアドレス法で次の空き番地へ回る
キー値を5で割った余りに1を加えるので、3→4番地、4→5番地に格納される。次の8は余り3で4番地が埋まっており、5も埋まっているため6番地に入る。続く13も同じく4番地が指定されるが4・5・6が埋まっているため、最終アドレスの次である1番地に格納される。
出典・参考
公式シラバスの3 技術要素 > 4. トランザクション処理 > (4) データベースの性能向上に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。