ハッシュ衝突管理におけるプライマリ クラスタリングとセカンダリ クラスタリングの違いは何ですか?
ベストアンサー1
プライマリクラスタリング
- プライマリクラスタリングとは、線形プローブなどの衝突解決方式が、長い連続した満たされたスロットを作成する傾向である。近くキーのハッシュ位置。
- プライマリ ハッシュ インデックスが の場合、後続のプローブは、など
x
に移動し、プライマリ クラスタリングが行われます。x+1
x+2
x+3
- プライマリ クラスターが形成されると、クラスターが大きくなるにつれて、成長速度も速くなります。そして、パフォーマンスが低下します。
二次クラスタリング
- 二次クラスタリングとは、二次プロービングなどの衝突解決方式が、満たされたスロットの長い連続を作成する傾向である。離れてキーのハッシュ位置から。
- プライマリ ハッシュ インデックスが の場合
x
、プローブはx+1
、x+4
、x+9
などに移動しx+16,
x+25
、セカンダリ クラスタリングが行われます。 - セカンダリ クラスタリングは、パフォーマンスへの影響という点ではプライマリ クラスタリングほど深刻ではなく、二次プローブを使用してクラスターの形成を防ぐ試みです。プライマリ ハッシュ サイトに隣接するセルではなく、より広く離れたセルをプローブするという考え方です。